/*
	+=======================================================================================================================+
	|										Blue Apple Technologies Private Limited								            |
	|-----------------------------------------------------------------------------------------------------------------------|
	|	Project Name :  GGT																									|
	|-----------------------------------------------------------------------------------------------------------------------|
	|	Dated 		 :  4 August 2005																						|
	|-----------------------------------------------------------------------------------------------------------------------|
	|	Author		 : Deepak Arora, Manish Nagpal																			|
	|-----------------------------------------------------------------------------------------------------------------------|
	|	Purpose		 : This script provides the some common functions.  This file is used by both sections					|
	|-----------------------------------------------------------------------------------------------------------------------|
	|Include Files   :  																									|
	|-----------------------------------------------------------------------------------------------------------------------|
	|	Last updated  :																										|
	|-----------------------------------------------------------------------------------------------------------------------|
	|	Updation done :																										|
	+=======================================================================================================================+
*/

function trim(st)
{
	if(st.length > 0)
	{
		re = / +$/g; 
		newval = st.replace(re,"");
		re = /^ +/g;
		newvala = newval.replace(re,"");
		return newvala;
	}
	return "";
}

function IsDate(mMonth, mDay, mYear)
{
	mMonth = parseInt(mMonth);
	mDay = parseInt(mDay);
	mYear = parseInt(mYear);
	var mLeap = false;
	if ( mYear%4 == 0 )
		mLeap = true;
	if ( mMonth == 1 )
	{
		if ( mDay < 1 || mDay > 31 )
			return false;
		else
			return true;
	}
	else if ( mMonth == 2 )
	{
		if ( mLeap )
		{
			if ( mDay < 1 || mDay > 29 )
				return false;
			else
				return true;
		}
		else
		{
			if ( mDay < 1 || mDay > 28 )
				return false;
			else
				return true;
		}
	}
	else if ( mMonth == 3 )
	{
		if ( mDay < 1 || mDay > 31 )
			return false;
		else
			return true;
	}
	else if ( mMonth == 4 )
	{
		if ( mDay < 1 || mDay > 30 )
			return false;
		else
			return true;
	}
	else if ( mMonth == 5 )
	{
		if ( mDay < 1 || mDay > 31 )
			return false;
		else
			return true;
	}
	else if ( mMonth == 6 )
	{
		if ( mDay < 1 || mDay > 30 )
			return false;
		else
			return true;
	}
	else if ( mMonth == 7 )
	{
		if ( mDay < 1 || mDay > 31 )
			return false;
		else
			return true;
	}
	else if ( mMonth == 8 )
	{
		if ( mDay < 1 || mDay > 31 )
			return false;
		else
			return true;
	}
	else if ( mMonth == 9 )
	{
		if ( mDay < 1 || mDay > 30 )
			return false;
		else
			return true;
	}
	else if ( mMonth == 10 )
	{
		if ( mDay < 1 || mDay > 31 )
			return false;
		else
			return true;
	}
	else if ( mMonth == 11 )
	{
		if ( mDay < 1 || mDay > 30 )
			return false;
		else
			return true;
	}
	else if ( mMonth == 12 )
	{
		if ( mDay < 1 || mDay > 31 )
			return false;
		else
			return true;
	}
	else
	{
		return false;
	}
}

// this function opens the popoup window
function WinOpenS(winname,w,h,leftcor,topcor,pname)
{
	window.open( pname , winname, "scrollbars=1,statusbar=no,menubar=no,toolbar=no,resizable,top=" + topcor + ",left=" + leftcor + ",width=" + w + ",height="+h ).focus();
}

function IsEmailValid(email)
{
	email = trim(email);
	
	valid_chars_for_email = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-@.";
	
	if ( email == "" )			// pending Email validation
	{
		return false;
	}
	
	for ( i=0; i < email.length; i++ )
	{
		ch =  "" + email.charAt(i);
		num = valid_chars_for_email.indexOf(ch);
		if ( num == -1 )
		{
			return false;
		}
	}
	
	if ( email.indexOf('@') == -1 )
	{
		return false;
	}
	
	if ( email.indexOf('.') == -1 )
	{
		return false;
	}
	
	return true;
}

function CompareDate(day1, month1, year1, day2, month2, year2)
{
	day1 = day1 * 1;
	month1 = month1 * 1;
	year1 = year1 * 1;
	day2 = day2 * 1;
	month2 = month2 * 1;
	year2 = year2 * 1;
	
	if ( (year2 == year1) && (month2 == month1) && (day2 == day1) )
	{
		return 0;			// Equal
	}
	else if ( ((year2 > year1)) || ( (year2 == year1) && (month2 > month1) ) || ( (year2 == year1) && (month2 == month1) && (day2 > day1)) )
	{
		return 2;			//  The second date is greater
	}
	else
	{
		return 1;			// The First Date is greater
	}
}

function ValidateNumeric( ctrl )
{
	var mVal = ctrl.value;
	mVal = trim(mVal);
	
	if ( isNaN(mVal) || mVal == "" )
	{
		alert (ctrl.title + " Must Be A Numeric Value");
		ctrl.focus();
		return false;
	}
	else 
	{
		return true;
	}
}

function ValidateEmpty( ctrl )
{
	var mVal = ctrl.value;
	mVal = trim(mVal);
	
	if ( mVal == "" )
	{
		alert ( ctrl.title + " cannot be left blank");
		ctrl.focus();
		return false;
	}
	else 
	{
		return true;
	}
}

function ValidateImage(ctrl)
{
	if (ctrl.value.length)
	{
		var iPos = ctrl.value.lastIndexOf(".")
		var sExt = ctrl.value.substring(iPos);
		
//		if((sExt.toUpperCase()=='.JPEG') || (sExt.toUpperCase()=='.JPG') || (sExt.toUpperCase()=='.GIF') || (sExt.toUpperCase()=='.BMP') || (sExt.toUpperCase()=='.PNG') )
		if((sExt.toUpperCase()=='.JPEG') || (sExt.toUpperCase()=='.JPG') || (sExt.toUpperCase()=='.GIF') || (sExt.toUpperCase()=='.BMP') || (sExt.toUpperCase()=='.PNG') )
		{
			return true;
		}
		else
		{
			alert("Please enter valid image.");
			ctrl.focus();
			ctrl.select();
			return false;
		}                       
	}
	else
	{
		alert("Please select the file to be uploaded");
		ctrl.focus();
		ctrl.select();
		return false;
	}
}

function ValidateBanner(ctrl , type)
{
	if (ctrl.value.length)
	{
		var iPos = ctrl.value.lastIndexOf(".")
		var sExt = ctrl.value.substring(iPos);
		
		if(type == "i")
		{
			if((sExt.toUpperCase()=='.JPEG') || (sExt.toUpperCase()=='.JPG') || (sExt.toUpperCase()=='.GIF') || (sExt.toUpperCase()=='.BMP') || (sExt.toUpperCase()=='.PNG'))
			{
				return true;
			}
			else
			{
				alert("Please enter valid banner.");
				ctrl.focus();
				ctrl.select();
				return false;
			}
		}
		else if(type == "f")
		{
			if((sExt.toUpperCase()=='.SWF'))
			{
				return true;
			}
			else
			{
				alert("Please enter valid banner.");
				ctrl.focus();
				ctrl.select();
				return false;
			}
		}
	}
	else
	{
		alert("Please select the banner to be uploaded");
		ctrl.focus();
		ctrl.select();
		return false;
	}
}

function ClearCombo(ctrl)
{
	len = ctrl.options.length;
	for ( i = 0; i < len; i++ )
		ctrl.options[0] = null;
}

//   Returns the digits after Decimal
function DigitsAfterDecimal(Num)
{
	Num = Num + "";
	Digits = 0;
	Flag = false;
	
	for ( i=0; i < Num.length; i++ )
	{
		if (Flag)
		{
			Digits++;
		}
		if (Num.charAt(i) == ".")
		{
			Flag = true;
		}
	}
	
	return Digits;
}

function IfContainsDecimal(Num)
{
	Num = Num + "";
	var mFlag = false;
	
	for ( i=0; i < Num.length; i++ )
	{
		if (Num.charAt(i) == ".")
		{
			mFlag = true;
		}
	}
	
	return mFlag;
}

function ShowPicture( imgctrl, ctrl )
{
	imgctrl.style.visibility = "visible";
	imgctrl.src = "file://" + ctrl.value;
}

//   This function moves selected Item from List to Another
function MoveSelectedItem ( lstSource, lstTarget )
{
	if (lstSource.selectedIndex != -1)
	{
		var value = lstSource.options[lstSource.selectedIndex].value;
		var text =  lstSource.options[lstSource.selectedIndex].text;
		lstSource.options[lstSource.selectedIndex] = null;
		lstTarget.options[lstTarget.options.length] = new Option(text, value, null ,null );
	}
	else
	{
		alert("First select an Item");
	}
}

//  This function moves all the items from a list to another
function MoveAllItems ( lstSource, lstTarget )
{
	var Slen = lstSource.options.length;
	var Tlen = lstTarget.options.length;
	
	if ( Slen )
	{
		for ( i=0; i < Slen; i++ )
		{
			var value = lstSource.options[0].value;
			var text =  lstSource.options[0].text;
			lstSource.options[0] = null;
			lstTarget.options[Tlen + i] = new Option(text, value, null ,null );
		}
	}
	else
	{
		alert("Source List doesnt have any Item");
	}
}

//   This function returns the Values of a Listbox in a format of
//		v1,v2,v2,v4,vn.
function GetListValues( lstctrl  )
{
	var len = lstctrl.options.length;
	var str = "";
	
	for( i=0; i < len; i++ )
	{
		if(i==0)
		{
				str = str +  lstctrl.options[i].value  ;
		}else
		{
				str = str + "," + lstctrl.options[i].value  ;
		}
	}
	
	return str;
}

function NewsletterSubmitForm()
{
	var mFlag = true;
	
	if ( ! IsEmailValid(document.frm_newsletter.txt_email.value) )
	{
		alert("Please write valid Email");
		mFlag = false;
		document.frm_newsletter.txt_email.focus();
	}
	
	return mFlag;
}

function SubmitLoginForm()
{
	var mFlag = true;
	
	if ( mFlag && ! ValidateEmpty(document.frmLogin.txt_username) )
	{
		mFlag = false;
	}
	if ( mFlag && ! ValidateEmpty(document.frmLogin.txt_password) )
	{
		mFlag = false;
	}
	if ( mFlag && document.frmLogin.txt_password.value.length < 6 )
	{
		alert("Password length cannot be smaller than 6 characters");
		document.frmLogin.txt_password.focus();
		mFlag = false;
	}
	
	return mFlag;
}

function loadChangedStatesList(obj , actfile)
{
	obj.form.action = actfile;
	obj.form.t.value = "a";
	obj.form.submit();
}

// ########## Function for Validating the Web Site Url. ##########
function isvalidwebsiteurl(ctrl)
{
    var ctrlvalue = ctrl.value;
	ctrlvalue = trim(ctrlvalue);
		
	websiteurlRegEx = /^((http|https):\/\/)?(www\.)?\S+\.\S+$/i;

    if(ctrlvalue.search(websiteurlRegEx) == -1)
    {
		alert ( ctrl.title + " is not valid");
		ctrl.focus();
		return false;
    }
	
	websiteurlstartRegEx = /^(http|https):\/\//i;
	
	if(ctrlvalue.search(websiteurlstartRegEx) == -1)
    {
		ctrl.value = "http://" + ctrl.value;
    }
	
	return true;
}

// ########## Function for Comparing the Date with the Current Date. ##########
function compareCurrentDate (da, mon, yr) 
{
	mon = mon - 1;
  	
	var now = new Date();	
	var curDay = now.getDate();
	var curYear = now.getFullYear();	
	var curMonth = now.getMonth();
	
	var comp = CompareDate(da, mon, yr, curDay, curMonth, curYear);
	
	if(comp == 2)
	{
		return 2;
	}
	
	return true;
}