/******************************************
Module name : Js Function file
Parent module : None
Date created : 14th November 2007
Date last modified : 24th January 2008
Author :  Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : The functions_js.js file contains various functions related to the web directory project.
******************************************/	

/******************************************
Function name : showSearchBox
Return type : None
Date created : 15th November 2007
Date last modified : 15th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : Function is used to show hide the seacch box
User instruction : showSearchBox()
******************************************/
function showSearchBox(varDocumentID, varShow)
{
	if(varShow == 'show')
	{
	 document.getElementById(varDocumentID).style.display = 'block';	
	}
	else
	{
	  document.getElementById(varDocumentID).style.display = 'none';
	}
	
}
/******************************************
Function name : checkUserName
Return type : None
Date created : 14th November 2007
Date last modified : 14th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : Function is used to login check using ajax.The ajax login check is a combination of functions all are using to check login system.
User instruction : checkUserName()
******************************************/
/* AJAX LOGIN CHECK CODE START FROM HERE */
function checkUserName() 
{
	var alphaNum = /^[0-9a-zA-Z_@.]+$/;
	var Usermail = document.getElementById('frm_login').frmAdminUserName.value;

	var charArray = new Array();
	var tString = "";
	for(i = 0; i < Usermail.length; i++) 
	{
		charArray[i] = Usermail.charAt(i);
	}

	for(i = 0; i < charArray.length; i++) 
	{
		if (charArray[i].match(alphaNum))
		{
			tString += charArray[i];
		}
	}	
	
	if (tString != "")
	{
		checkUserEmail(tString);
	}	
}
function checkUserEmail(mailID)
{ 
	
	doAjax('ajax_act.php','type=signUp&userEmail='+mailID,'showUserEmail','GET','0');
}
function showUserEmail(item)
{
	if(item)
	{
		document.getElementById('showUserName').style.display = 'none';	
	}
	else
	{
		document.getElementById('showUserName').style.display = 'inline';
	}
}
function checkUserPass() 
{
	var alphaNum = /^[0-9a-zA-Z_@.]+$/;	
	var UserName = document.getElementById('frm_login').frmAdminUserName.value;
	var UserPass = document.getElementById('frm_login').frmAdminPassword.value;
	var charArray = new Array();
	var tString = "";
	for(i = 0; i < UserPass.length; i++) 
	{
		charArray[i] = UserPass.charAt(i);
	}

	for(i = 0; i < charArray.length; i++) 
	{
		if (charArray[i].match(alphaNum))
		{
			tString += charArray[i];
		}
	}	
	
	if (tString != "")
	{
		
		checkPass(tString , UserName );
	}	
}
function checkPass(pass , UserName)
{ 
	doAjax('ajax_act.php','type=signUpPass&userPass='+pass+'&userName='+UserName,'showUserPass','GET','0');
}
function showUserPass(item)
{
	if(item)
	{
		document.getElementById('showUserPass').style.display = 'none';	
	}
	else
	{
		document.getElementById('showUserPass').style.display = 'inline';
	}
}
/* END OF AJAX LOGIN CHECK CODE */

/******************************************
Function name : toggleOption
Return type : None
Date created : 14th November 2007
Date last modified : 14th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : Function will toggle the select all checkbox option.
User instruction : toggleOption(spanChk)
******************************************/
function toggleOption(spanChk)
{
	var xState=spanChk.checked;
	var theBox=spanChk;

	elm=theBox.form.elements;
	
	for(i=0;i<elm.length;i++)
	{
		if(elm[i].type=="checkbox" && elm[i].id!=theBox.id)
		{
			if(xState == false)
				elm[i].checked = false;
			else
				elm[i].checked = true;
		}
	}
}

/******************************************
Function name : checkPhone
Return type : boolean
Date created : 14th November 2007
Date last modified : 14th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : Function will return the true or false according to phone field validation
User instruction : checkPhone(phone)
******************************************/
function checkPhone(phone)
{
	var phoneRequired = /^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,3})|(\(?\d{2,3}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$/
	if(!phoneRequired.test(phone))
		return false;
	return true;
}

/******************************************
Function name : getMasterString
Return type : boolean
Date created : 14th November 2007
Date last modified : 14th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : Function will return the main string
User instruction : getMasterString()
******************************************/
function getMasterString()
{
	return "Sorry, we can not complete your request.\nKindly provide us the missing or incorrect information enclosed below.\n";
}

/******************************************
Function name : checkError
Return type : boolean
Date created : 14th November 2007
Date last modified : 14th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : Function will return the true or false acording to form validation
User instruction : checkError(error)
******************************************/
function checkError(error)
{
	var flag=false;
	var MasterString = getMasterString();
	
	if(error != "")
	{
		MasterString = MasterString + error;
		flag=true;
	}
	
	if(flag == true)
	{
		alert(MasterString);
		return false;
	}
	else
		return true;
}

/******************************************
Function name : askConfirm
Return type : boolean
Date created : 14th November 2007
Date last modified : 14th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : Function will return the true or false after asking for confirmation
User instruction : askConfirm(type)
******************************************/
function askConfirm(type)
{	
	var sen = "Are you sure you want to "+type+"?";
	if(confirm(sen))
		return true;
	else
		return false;
}

/******************************************
Function name : validator
Return type : boolean
Date created : 14th November 2007
Date last modified : 14th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : Function will return the true or error message after validating checkboxes
User instruction : validator(btnType)
******************************************/
var btnType;
function validator(btnType,formname)
{
	
	var obj = formname;
	var error="", flagCheck=0;
	
	var len = obj.elements.length; 
	var i=0;
	for(i=0;i<len;i++) 
	{
		if(obj.elements[i].type=='checkbox')
		{
			if(obj.elements[i].checked)
			{
				//if(btnType == 'Delete')
					return askConfirm(btnType);
				//else
					//return true;
			}
			else
				flagCheck = 1;
		}
	}
	
	if(flagCheck == 1)
		error += "\n - Please select at least one record.";
			
	return checkError(error);
}

/******************************************
Function name : validateForm
Return type : boolean
Date created : 14th November 2007
Date last modified : 14th November 2007
Author : Ashok Singh Negi
Last modified by : Ashok Singh Negi
Comments : Function will validate the various form
User instruction : validateForm()
******************************************/
function validateForm() 
{ 
	var i,p,q,nm,test,num,min,max,errors='',args=validateForm.arguments;
	j=0;
	//	/^([-a-zA-Z0-9._]+@[-a-zA-Z0-9.]+(\.[-a-zA-Z0-9]+)+)$/;
	var regEmail = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
	var regBlank = /[^\s]/;
	var regSpace = /[\s]/;
	//var regAlphaNum = /^([a-zA-Z0-9-/_ :;#!@\n\r.,$*&%?^~`=+(){}\[\]\"\'\\]+)$/;
	var regAlphaNum = /^([a-zA-Z0-9_#@!]+)$/;
	var regDate = /^([0-9_]+-[0-9][0-9]+-[0-9][0-9]+)$/; 
    var regChar = /^([a-zA-Z]+)$/;
	
	//alert (validateForm.arguments[1].name);
	//alert("sss--->"+document.forms[""+args[0]].elements[""+args[0]].value);
	for (i=1; i<(args.length-2); i+=3) 
	{	
		
		mesg=args[i+1];
		test=args[i+2]; 
		val=document.forms[""+args[0]].elements[""+args[i]];
		
		    if (val) 
			{	
				nm=mesg; 
				noVal = val;
				val = val.value;
				
			if(test=='BLNK')
			{
			 if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
			 if (val<0) errors+='- '+nm+' must contain a number.\n';
			 }			
			 else if(test=='CHKURL' && val !="")
				{
					p=val.indexOf('http://');
					s=val.indexOf('.');
			        if (p<0 || p==(val.length-1))
					{
						errors+='- '+nm+' must be valid URL e.g. http://www.abc.com\n';
		
					}
					else if(s<p || s==(val.length-1))
					{
						errors+='- '+nm+' must be valid URL e.g. http://www.abc.com\n';
					}

				}
			 else
				{
			if(regBlank.test(val))
			{
				if(test.indexOf('isEqual')!=-1)
				{
					result = trim(val);

				if(result.length==0){
										
				errors += '- '+nm+' is required.\n'; 
				}else{
					
					equal_obj_val = test.substring(8,test.indexOf(":"));
					mesg_string =test.substring((test.indexOf(":")+1));

					if(val != document.forms[""+args[0]].elements[""+equal_obj_val].value)
					{ 
						errors+='- '+nm+' and '+mesg_string+' must be same.\n';
					}
				}
				}
				else if(test.indexOf('isAlphaNum')!=-1)
				{
				result = trim(val);
				if(result.length==0){
				errors += '- '+nm+' is required.\n'; 
				}else{
					if(!regAlphaNum.test(val))
					{
						errors += '- '+nm+' is not valid.\n';
						//errors+='- '+nm+': Only Alpha Numeric and "_ , . - ! @ # () {} [] " coma,  single cots and Chars Allowed.\n';
					}
				}
				
				}
				else if(test.indexOf('isSpace')!=-1)
				{
				result = trim(val);
				
				if(result.length==0)
				{
					errors += '- '+nm+' is required.\n'; 
				}
				else
				{
					if(regSpace.test(val))
					{
						errors += '- '+nm+' is not valid.\n';
					}
				}
				}
				else if (test.indexOf('isDate')!=-1) 
				{ 
					p=val.indexOf('-');
			       // alert(test.indexOf('isDate'));
			       	var sliptdate	= val.split("-");
					
					/*******************Added by rupesh Date is not before current date and month*********************/
					var today=new Date(),TY=today.getFullYear(),TM=today.getMonth(),TD=today.getDate(),TH=today.getHours();
					TM+=1;			
					if(TM<=9) 
					{	
						TM='0'+TM;
					}
					if(TD<=9)
					{
						TD='0'+TD;
					}
					/*******************Added by rupesh*********************/
					
					var sY=sliptdate[0];
					var sM=sliptdate[1];
					var sD=sliptdate[2];
					
					/*******************Added by rupesh*********************/
					//alert(TM);
					if(sY<TY ) {
						
						errors+='- '+nm+' should be greater than current date.\n';
					}
					else if(sM==TM && sD<TD && sY==TY) { 

						errors+='- '+nm+' should be greater than current date.\n';
						
					}
					else if(sM<TM && sY==TY) { 

						errors+='- '+nm+' should be greater than current date.\n';
						
					}
					
					/*************************Added by rupesh********************/
					else if (p != 4 || sY.length != 4 || sM.length != 2 || sD.length != 2 )
					{
						errors+='- '+nm+' must contain Valid Date YYYY-MM-DD.\n';
		
					}
					else if(!regDate.test(val))
					{
						errors+='- '+nm+'  must contain Valid Date YYYY-MM-DD.\n';
					}
					else if(sM>12 || sD>31 || sY<2006)
					{
						errors+='- '+nm+'  must contain Valid Date YYYY-MM-DD.\n';
					}
			     }
				else if (test.indexOf('isEmail')!=-1) 
				{ 
					p=val.indexOf('@');
					s=val.indexOf('.');
			        if (p<1 || p==(val.length-1))
					{
						errors+='- '+nm+' must contain an e-mail Address.\n';
		
					}
					//else if(s<p || s==(val.length-1))
					else if(!regEmail.test(val))
					{
						errors+='- '+nm+' must contain a valid e-mail Address.\n';
					}
			     }
				else if (test.indexOf('isUrl')!=-1) 
				{ 
					p=val.indexOf('http://');
					s=val.indexOf('.');
			        if (p<0 || p==(val.length-1))
					{
						errors+='- '+nm+' must be valid URL e.g. http://www.abc.com\n';
		
					}
					else if(s<p || s==(val.length-1))
					{
						errors+='- '+nm+' must be valid URL e.g. http://www.abc.com\n';
					}
			     }
				 else if(test.indexOf('isMp3')!=-1)
				 {
					function reverse(val) 
					{	
						var length = val.length;
						var letters = new Array(length);
						var letters2 = new Array(length);
						var backword = "";
						for (i=0; i<=length-1; i++) 
						{
							letters[i] = val.substring(i, i+1);
						}
						f = 0
						for (j=i-1; j>=0; j--) 
						{
							letters2[f] = letters[j];
							f++;
						}
						for (h=0; h<=letters2.length-1; h++) 
						{
							backword +=letters2[h];
						}
					 	return backword;
					}
					var back = reverse(val);
					var ValExt	= back.split(".");
					var ValExt = reverse(ValExt[0]);
					
					if (ValExt == "mp3" || ValExt == "MP3") 
					{
						flag="yes";
					} 
					else 
					{
						flag="no";						
					} 
					if(flag=="no")
					{
						errors+='- '+nm+' must be (mp3).\n';						
					}
				 
				 }
				 else if (test.indexOf('isChar')!=-1) 
				 { 
					var first_char;
					
					if(val.match(regChar)==null)
					{
					 	errors+='- '+nm+' must contain a character.\n';
					}
			     }
				 else if(test.indexOf('isCheckbox')!=-1)//Check is check box is not checked generate error
				{	
					var valueCheckbox = noVal.checked;
					if(!valueCheckbox)
					{
						errors+='- '+' Accept terms and Policy.\n';
					}
				}
	   			 else if (test!='R' || test=='Numbers') 
				 {
				 result = trim(val);
					if(result.length==0){
						
						if(errors.indexOf('Phone') == -1)
					errors += '- '+nm+' is required.\n'; 
					}
					
				    if (isNaN(val)) 
					{
					 if(errors.indexOf('Phone') == -1)
					 errors+='- '+nm+' must contain a number.\n';
					}
					else
					{
					if(test=='Numbers' && !isNaN(val))
					{
					var i1;
					var num1=0;
						for (i1 = 0; i1 < val.length; i1++)
						{   
							// Check that current character is number.
							var c = val.charAt(i1);
							if (((c < "0") || (c > "9"))) num1=1;
						}
						if(num1==1)
						{
							if(errors.indexOf('Phone') == -1)
							errors+='- '+nm+' can only contain numbers.\n';
						}
					}
				 }
					if (test.indexOf('inRange') != -1) 
					{ num = parseFloat(val);
						p=test.indexOf(':');
						min=test.substring(8,p); 
						max=test.substring(p+1);
						
						if (num<min || max<num) 
							if(min==max)
							{
							  if(min==1 && max==1 & num==0)
								{
							errors+='- '+nm+' should be at least '+min+'.\n';
							    }
								if(min!=1 && max!=1 && min==max)
								{
							errors+='- '+nm+' should not be more than '+min+'.\n';
								}
							}				
							
						else
						{
						errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
						}
					} 
					if (val.indexOf('-') != -1) 
					{ 
						errors='- '+nm+' must contain a number.\n';
					} 
					if (val.indexOf('+') != -1) 
					{ 
						errors='- '+nm+' must contain a number.\n';
					}
					
				}else if (test.charAt(0)=='R')
				{
				result = trim(val);
				if(result.length==0){
					
				errors += '- '+nm+' is required.\n'; 
				}
				} 
			}
			else if (test.charAt(0) == 'R' || test=='Numbers'){
				if(errors.indexOf('Phone') == -1 && test=='Numbers')
				{
				errors += '- '+nm+' is required.\n'; 
				}
				if (test.charAt(0) == 'R')
				{					
				errors += '- '+nm+' is required.\n'; 	
				}
			}
		}
			}
		if(errors !="")
		{	if(j<=0)
			{
				focusitem = document.forms[""+args[0]].elements[""+args[i]];
				j++;
			}	
		}
	} 
	
  if (errors)
  {
	var MasterString = getMasterString();
	alert(MasterString+'\n'+errors);
	focusitem.focus();
	return false;
   }
   else
	return true;

  document.MM_returnValue = (errors == '');
}

/******************************************
Function name : stripHTML
Return type : string
Date created : 14th November 2007
Date last modified : 14th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : Function will return the main string after removing HTML tags
User instruction : stripHTML(str)
******************************************/
function stripHTML(str){
      var re= /<\S[^><]*>(&nbsp;)*/g ;
      return str.replace(re, "") ;
}
/******************************************
Function name : ltrim
Return type : string
Date created : 14th November 2007
Date last modified : 14th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : Function will return the main string after removing white spaces from the left
User instruction : ltrim(str)
******************************************/
function ltrim(str) { 
	for(var k = 0; k < str.length && isWhitespace(str.charAt(k)); k++);
	return str.substring(k, str.length);
}
/******************************************
Function name : rtrim
Return type : string
Date created : 14th November 2007
Date last modified : 14th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : Function will return the main string after removing white spaces from the right
User instruction : rtrim(str)
******************************************/
function rtrim(str) {
	for(var j=str.length-1; j>=0 && isWhitespace(str.charAt(j)) ; j--) ;
	return str.substring(0,j+1);
}
/******************************************
Function name : trim
Return type : string
Date created : 14th November 2007
Date last modified : 14th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : Function will return the main string after removing white spaces from the right and left of the main string
User instruction : trim(str)
******************************************/
function trim(str) {
	return ltrim(rtrim(str));
}
/******************************************
Function name : isWhitespace
Return type : integer
Date created : 14th November 2007
Date last modified : 14th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : Function will return the index of white space encounter in the string.
User instruction : isWhitespace(charToCheck)
******************************************/
function isWhitespace(charToCheck) {
	var whitespaceChars = " \t\n\r\f";
	return (whitespaceChars.indexOf(charToCheck) != -1);
}
/******************************************
Function name : enableTextBox
Return type : integer
Date created : 24th November 2007
Date last modified : 24th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : Function will show or hide text boxes.
User instruction : enableTextBox(charToCheck)
******************************************/
function enableTextBox(action,textBoxID)
{
	if(action=='hide')
	{
		document.getElementById(textBoxID).style.display = 'none';
	}
	if(action=='show')
	{
		document.getElementById(textBoxID).style.display = 'block';
	}
}

/*****************************
Function name : validateAdminForm
Return type : integer
Date created : 14th November 2007
Date last modified : 14th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This is used to check admin login authentications.
User instruction : validateAdminForm(charToCheck)
************************************/
function validateAdminLoginForm(formname)
{
	if(validateForm(formname,'frmAdminUserName','Username','R', 'frmAdminPassword','Password','R'))
	{	
		return true;
	} 
	else 
	{
		return false;
	} 
}

/*****************************
Function name : validChangePass
Return type : integer
Date created : 15th November 2007
Date last modified : 15th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This is used to validate admin password and confirm passwords.
User instruction : validChangePass(charToCheck)
************************************/
function validAdminChangePass(formname)
{
	if(validateForm(document.getElementById(formname).id,'frmAdminOldPassword', 'Current Password', 'RisSpace', 'frmAdminNewPassword', 'New Password','RisAlphaNum','frmAdminConfirmPassword', 'Confirm New Password', 'RisEqualfrmAdminNewPassword:New Password'))
	{			
			var flag=confirm('Are you sure you want to change password?')
			if(flag)
			return true;
			
			else
			return false;		
	} 
	else 
	{
		return false;
	} 
}

/*****************************
Function name : validateAdminEmailChange
Return type : integer
Date created : 15th November 2007
Date last modified : 15th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to validate admin notification email id.
User instruction : validateAdminEmailChange(charToCheck)
************************************/
function validateAdminEmailChange(formname)
{
	if(validateForm(document.getElementById(formname).id,'frmAdminEmail', 'Email','RisEmail'))
	{			
			var flag=confirm('Are you sure you want to change email?')
			if(flag)
			return true;
			
			else
			return false;		
	} 
	else 
	{
		return false;
	} 
}
/*****************************
Function name : validateLoginForm
Return type : none
Date created : 15th November 2007
Date last modified : 15th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to validate forgot password form.
User instruction : validateLoginForm(charToCheck)
************************************/
function validateForgotPasswordForm(formname)
{
	if(validateForm(formname,'frmUserName','Username','RisEmail','frmUserPassword','Password','R','frmSecurityCode','Verification code','R'))
	{	
		return true;
	} 
	else 
	{
		return false;
	} 
}

/*****************************
Function name : deSelectCheckbox
Return type : none
Date created : 15th November 2007
Date last modified : 15th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to deselect the main checkbox.
User instruction : deSelectCheckbox(formname)
************************************/
function deSelectCheckbox(formname)
{
	document.getElementById('Main').checked = false;
}

/*****************************
Function name : setValidAction
Return type : none
Date created : 15th November 2007
Date last modified : 15th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to display confirmation messages for actions in listing pages.
User instruction : setValidAction(value, formname,listname)
************************************/
function setValidAction(value, formname,listname)
{
	if(value == 'Delete')
	{
		message = "delete selected "+listname;		
	}
	else
	{
		message = "change status of selected "+listname;
	}
	var flag = validator(message,formname);			
	if(flag)
	{			
		formname.submit();
	}
	else
	{
		formname.frmChangeAction.value='';	
		document.getElementById('Main').checked = false;
		document.forms[1].Main.checked=false;				
		elm=document.forms[1].elements;
		for(i=0;i<elm.length;i++)
		{
			if(elm[i].type=="checkbox")
			{			
				elm[i].checked = false;
			}
		}
		return false;
	}
}

/*****************************
Function name : getPageURL
Return type : none
Date created : 17th November 2007
Date last modified : 17th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to generate page url as per the product name.
User instruction : getPageURL(sourceField,targetField)
************************************/
function getPageURL(sourceField,targetField)
{
	if(document.getElementById(sourceField).value!='')	
	{
		var productName	= document.getElementById(sourceField).value;
		productName = trim(productName);
		var pageURL =  '';
		for(i=0;i<productName.length;i++)
		{
			if(productName.charAt(i)==' ')
			{
				pageURL = pageURL + "-";
			}
			else
			{
				pageURL = pageURL + productName.charAt(i);
			}
		}
		if(pageURL.length>250)
		{
			pageURL = pageURL.slice(0,250);
		}
		document.getElementById(targetField).value = pageURL.toLowerCase();
	}
}

/*****************************
Function name : checkSearchDate
Return type : none
Date created : 17th November 2007
Date last modified : 17th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to validate that "To" date is after "From" date.
User instruction : checkSearchDate(obj)
************************************/
function checkSearchDate(obj)
{
	var error = "";
	if((obj.frmFromDate.value > obj.frmToDate.value) && obj.frmFromDate.value!='From' && obj.frmToDate.value!='To' )
	{
		error += "\n- 'To' date will be set after 'From' date.";
	}
	
	if(error != "")
	{
		checkError(error);
		return false;
	}
	else
		return true;
}

/*****************************
Function name : displayWindow
Return type : none
Date created : 20th November 2007
Date last modified : 20th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to display credit card rating window.
User instruction : displayWindow(varTitle,varDivID)
************************************/
function displayWindow(varTitle,varDivID)
{
	var width, height;
	var left,top;
	width = 300;
	height = 270;
	top = (screen.height/2)-(370/2);
	left = (screen.width/2)-(370/2);
	displayFloatingDiv(varDivID, varTitle, width, height, left, top);
}

/*****************************
Function name : generateRatingForm
Return type : none
Date created : 20th November 2007
Date last modified : 20th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to generate rating form for credit card.
User instruction : generateRatingForm(varCreditCardID)
************************************/
function generateRatingForm(varCreditCardID)
{
	doAjax ('rpc.php','frmCreditCardID='+varCreditCardID, 'loadRatingForm','post');
}

/*****************************
Function name : generateRatingForm
Return type : none
Date created : 20th November 2007
Date last modified : 20th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to load rating form for credit card into HTML.
User instruction : loadRatingForm(showDetails)
************************************/
function loadRatingForm(showDetails)
{	
	document.getElementById('RatingMainDiv').innerHTML=showDetails;
}

/*****************************
Function name : changePageing
Return type : string
Date created : 12th Oct 2007
Date last modified : 12nd Dec 2007
Author : Rupesh parmar
Last modified by : Charanjeet Singh
Comments : This function take to selected page
User instruction : changePageing(argStr)
************************************/
function changePaging(argStr, argPageNum)
{
  var QueryStr = argStr+'-'+argPageNum+'.html';
  location.href = QueryStr;
}

/*****************************
Function name : changeSearchPaging
Return type : string
Date created : 12th January 2008
Date last modified : 12th January 2008
Author : Rupesh parmar
Last modified by : Charanjeet Singh
Comments : This function take to selected search page
User instruction : changeSearchPaging(argFileName,argPageNum,argPostVar)
************************************/
function changeSearchPaging(argFileName,argPageNum,argPostVar)
{
	location.href = argFileName+argPageNum+'/'+argPostVar;	
}

//****************************Credit Card Companies Start Here***************************
/*****************************
Function name : validateAddCCCompany
Return type : none
Date created : 17th November 2007
Date last modified : 17th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to validate the credit card company.
User instruction : validateAddCCCompany(obj)
************************************/
function validateAddCCCompany(obj)
{
	var error = "";
	hasPickedProvider = false;
	
	if(obj.frmCompanyName.value=="")
	{
		error += "\n- Company Name is required.";
	}
	
	var s = obj.elements['frmCardProvider[]'];
	for (i = 0; i < s.length; i++) 
	{
		if (s[i].selected) 
		{
			hasPickedProvider = true;
			break;
		}
	}
	
	if (!hasPickedProvider)
	{
		error += "\n- Card Provider is required."
	}
	
	if(obj.frmCompanyURL.value=="")
	{
		error += "\n- Page URL is required."
	}
	else
	{
		for(var i = 0; i < obj.frmCompanyURL.value.length; i++)  
		{ 
			  var c = obj.frmCompanyURL.value.charAt(i);
			  if ((c == ' ') || (c == '\n') || (c == '\t'))
			  {
					var a = true;
			  }
		}
		if(a)
		{
			error += "\n- Page URL must not contain blank spaces."
		}
	}
	
	if(obj.frmCompanyStatus.value=="")
	{
		error += "\n- Status is required."
	}
	
	if(obj.frmCompanyPageTitle.value=="")
	{
		error += "\n- Page Title is required."
	}
	
	if(error != "")
	{
		checkError(error);
		return false;
	}
	else
		return true;
}

/*****************************
Function name : validateCreditCards
Return type : none
Date created : 24th November 2007
Date last modified : 24th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to validate the credit card form.
User instruction : validateCreditCards(formname)
************************************/
function validateCreditCards(formname)
{
	if(validateForm(document.getElementById(formname).id,'frmCompanyNameID', 'Company Name','R', 'frmCardProvider', 'Card Provider', 'R', 'frmCardType', 'Card Type', 'R','frmProductName', 'Card Name', 'R','frmCardPurpose', 'Card Purpose', 'R','frmPageURL', 'Page URL', 'RisSpace','frmPageTitle', 'Page Title', 'R','frmPurchaseInterestRate', 'Purchase Interest Rate', 'RisNaN','frmCashWithdrawInterestRate', 'Cash Withdrawal Rate', 'RisNaN','frmBalanceTransferInterestRate', 'Balance Transfer Rate & Detail', 'R','frmEligibility', 'Eligibility', 'R','frmGracePeriod', 'Grace Period', 'R','frmMinimumMonthlyPayment', 'Min. Monthly Payment', 'R'))
	{
		return true;
	}
	else 
	{
		return false;	
	}
}

/*****************************
Function name : getCurrentCompanyProviders
Return type : none
Date created : 24th November 2007
Date last modified : 24th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to generate current company providers.
User instruction : getCurrentCompanyProviders(varCompanyID,varCardProviderID)
************************************/
function getCurrentCompanyProviders (varCompanyID,varCardProviderID)
{
	doAjax ('rpc.php','frmCompanyID='+varCompanyID+'&frmCardProviderID='+varCardProviderID, 'loadCurrentCompanyProviders','post');
}

/*****************************
Function name : getPageURL
Return type : none
Date created : 24th November 2007
Date last modified : 24th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to load provideres for current company into HTML.
User instruction : loadCurrentCompanyProviders(showDetails)
************************************/
function loadCurrentCompanyProviders(showDetails)
{	
	document.getElementById('CurrentCompanyProviders').innerHTML=showDetails;
}

/*****************************
Function name : checkCompanyName
Return type : none
Date created : 28th November 2007
Date last modified : 28th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to check the company name for any duplicacy.
User instruction : checkCompanyName()
************************************/
function checkCompanyName()
{
	var alphaNum = /^[0-9a-zA-Z_@.]+$/;
	var companyName = document.getElementById('frmCompanyName').value;
	var companyID = document.getElementById('frmCompanyID').value;
	doAjax('rpc.php','type=signUpCompany&name='+companyName+'&CompanyID='+companyID,'showCompanyNameError','post','1');
}

/*****************************
Function name : showCompanyNameError
Return type : none
Date created : 28th November 2007
Date last modified : 28th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to show any errors found in checking company name.
User instruction : showCompanyNameError(item)
************************************/
function showCompanyNameError(item)
{
	if(item>0)
	{
		document.getElementById('frmCompanyError').style.visibility = 'visible';
		document.getElementById('frmAddCompany').disabled = true;
		document.getElementById('frmAddCompany').setAttribute('class','button_disable');
	}
	else
	{
		document.getElementById('frmCompanyError').style.visibility = 'hidden';
		document.getElementById('frmAddCompany').setAttribute('class','button');
		document.getElementById('frmAddCompany').disabled = false
	}
}

/*****************************
Function name : checkCompanyURL
Return type : none
Date created : 28th November 2007
Date last modified : 28th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to check the company URL for any duplicacy.
User instruction : checkCompanyURL()
************************************/
function checkCompanyURL()
{
	var companyURL = document.getElementById('frmCompanyURL').value;
	var companyID = document.getElementById('frmCompanyID').value;
	doAjax('rpc.php','type=signUpCompany&URL='+companyURL+'&CompanyID='+companyID,'showCompanyURLError','post','1');
}

/*****************************
Function name : showCompanyURLError
Return type : none
Date created : 28th November 2007
Date last modified : 28th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to show any errors found in checking company URL.
User instruction : showCompanyURLError(item)
************************************/
function showCompanyURLError(item)
{
	if(item>0)
	{
		document.getElementById('frmCompanyURLError').style.visibility = 'visible';
		document.getElementById('frmAddCompany').disabled = true;
		document.getElementById('frmAddCompany').setAttribute('class','button_disable');
	}
	else
	{
		document.getElementById('frmCompanyURLError').style.visibility = 'hidden';
		if(!(document.getElementById('frmAddCompany').disabled))
		{
			document.getElementById('frmAddCompany').setAttribute('class','button');
			document.getElementById('frmAddCompany').disabled = false
		}
	}
}

/*****************************
Function name : checkCreditCardURL
Return type : none
Date created : 4th December 2007
Date last modified : 4th December 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to check the credit card URL for any duplicacy.
User instruction : checkCreditCardURL()
************************************/
function checkCreditCardURL()
{
	var CreditCardURL = document.getElementById('frmPageURL').value;
	var CreditCardID = document.getElementById('frmCreditCardID').value;
	doAjax('rpc.php','type=signUpCC&URL='+CreditCardURL+'&CCID='+CreditCardID,'showCreditCardURLError','post','1');
}

/*****************************
Function name : showCreditCardURLError
Return type : none
Date created : 4th December 2007
Date last modified : 4th December 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to show any errors found in checking credit card URL.
User instruction : showCreditCardURLError(item)
************************************/
function showCreditCardURLError(item)
{
	if(item>0)
	{
		document.getElementById('frmCreditCardURLError').style.visibility = 'visible';
		document.getElementById('frmAddCreditCard').disabled = true;
		document.getElementById('frmAddCreditCard').setAttribute('class','button_disable');
	}
	else
	{
		document.getElementById('frmCreditCardURLError').style.visibility = 'hidden';
		document.getElementById('frmAddCreditCard').setAttribute('class','button');
		document.getElementById('frmAddCreditCard').disabled = false
	}
}

/*****************************
Function name : setFeaturedCreditCard
Return type : none
Date created : 17th December 2007
Date last modified : 17th December 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to set a card as a featured card.
User instruction : setFeaturedCreditCard(varCreditCardID)
************************************/
function setFeaturedCreditCard(varCreditCardID)
{
	if(askConfirm("add this credit card to featured list"))
	{
		location.href= 'cc_action.php?id='+varCreditCardID+'&action=active';	
	}
	else
	{
		return false;
	}
}

/*****************************
Function name : resetFeaturedCreditCard
Return type : none
Date created : 17th December 2007
Date last modified : 17th December 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to reset or remove a card as a featured card.
User instruction : resetFeaturedCreditCard(varCreditCardID)
************************************/
function resetFeaturedCreditCard(varCreditCardID)
{
	if(askConfirm("remove this credit card from featured list"))
	{
		location.href= 'cc_action.php?id='+varCreditCardID+'&action=deactive';
	}
	else
	{
		return false;
	}
}

/*****************************
Function name : checkInterestRate
Return type : none
Date created : 17th January 2007
Date last modified : 17th January 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to generate decimal interest values if there are not.
User instruction : checkInterestRate(fieldID)
************************************/
function checkInterestRate(fieldID)
{
    var val = document.getElementById(fieldID).value;
    if(val != '' )
    {
    	if(!isNaN(val))
        {  
			if(val.indexOf(".")<0)
            {
                document.getElementById(fieldID).value=val+'.00';
            }
			else
			{
				var Rate = val.split(".");
				var Decimal = Rate[1];
				if(Decimal.length >=2)
				{
					document.getElementById(fieldID).value=val;
				}
				else
				{
					document.getElementById(fieldID).value=val+'0';
				}
			}
		}
    }
}

function validateAddCategory(formname)
{
	if(validateForm(document.getElementById(formname).id,'frmCategoryName', 'Category Name','R', 'frmCategoryURL', 'Category Page URL', 'R', 'frmCategoryPageTitle', 'Category Page Title', 'R'))
	{
		return true;
	}
	else 
	{
		return false;	
	}
}

function checkCategoryName()
{
	var categoryName = document.getElementById('frmCategoryName').value;
	var categoryID = document.getElementById('frmCategoryID').value;
	doAjax('rpc.php','type=signUpCategory&Name='+categoryName+'&CategoryID='+categoryID,'showCategoryNameError','post','1');
}

function showCategoryNameError(item)
{
	if(item>0)
	{
		document.getElementById('frmCategoryNameError').style.visibility = 'visible';
		document.getElementById('frmAddCategorySubmit').disabled = true;
		document.getElementById('frmAddCategorySubmit').setAttribute('class','button_disable');
	}
	else
	{
		document.getElementById('frmCategoryNameError').style.visibility = 'hidden';
		if((document.getElementById('frmAddCategorySubmit').disabled))
		{
			document.getElementById('frmAddCategorySubmit').setAttribute('class','button');
			document.getElementById('frmAddCategorySubmit').disabled = false
		}
	}
}

function checkCategoryURL()
{
	var categoryURL = document.getElementById('frmCategoryURL').value;
	var categoryID = document.getElementById('frmCategoryID').value;
	doAjax('rpc.php','type=signUpCategory&URL='+categoryURL+'&CategoryID='+categoryID,'showCategoryURLError','post','1');
}

function showCategoryURLError(item)
{
	if(item>0)
	{
		document.getElementById('frmCategoryURLError').style.visibility = 'visible';
		document.getElementById('frmAddCategorySubmit').disabled = true;
		document.getElementById('frmAddCategorySubmit').setAttribute('class','button_disable');
	}
	else
	{
		document.getElementById('frmCategoryURLError').style.visibility = 'hidden';
		if((document.getElementById('frmAddCategorySubmit').disabled))
		{
			document.getElementById('frmAddCategorySubmit').setAttribute('class','button');
			document.getElementById('frmAddCategorySubmit').disabled = false
		}
	}
}
//****************************Credit Card Companies End Here*****************************

//****************************Advertisement Start Here***********************************
/*****************************
Function name : validateBanner
Return type : none
Date created : 17th December 2007
Date last modified : 17th December 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to validate the banner form.
User instruction : validateBanner(formname)
************************************/
function validateBanner(formname)
{
	if(document.getElementById('BannerOptions2').style.display=='none')
	{
		if((document.getElementById('frmOrigHTMLCode').value=='') || (document.getElementById('frmOrigHTMLCode').value!='' && document.getElementById('frmBannerHTMLCode').value==''))
		{	
			if(validateForm(document.getElementById(formname).id,'frmBannerPage', 'Banner Page','R','frmBannerTitle', 'Banner Title','R','frmBannerPosition','Banner Position','R','frmBannerStatus','Banner Status','R','frmBannerClicks','Banner Clicks','RinRange1:1','frmBannerImpressions','Banner Impressions','RinRange1:1','frmBannerExpiry','Banner Expiry','R','frmBannerURL','Banner URL','isUrl','frmBannerHTMLCode','Banner HTML Code','R'))
			{
				return true;
			}
			else 
			{
				return false;	
			}
		}
		else
		{
			if(validateForm(document.getElementById(formname).id,'frmBannerPage', 'Banner Page','R','frmBannerTitle', 'Banner Title','R','frmBannerPosition','Banner Position','R','frmBannerStatus','Banner Status','R','frmBannerClicks','Banner Clicks','RinRange1:1','frmBannerImpressions','Banner Impressions','RinRange1:1','frmBannerExpiry','Banner Expiry','R','frmBannerURL','Banner URL','isUrl'))
			{
				return true;
			}
			else 
			{
				return false;	
			}
		}
	}
	else
	{
		if(document.getElementById('frmImageName').value=='')
		{	
			if(validateForm(document.getElementById(formname).id,'frmBannerPage', 'Banner Page','R','frmBannerTitle', 'Banner Title','R','frmBannerPosition','Banner Position','R','frmBannerStatus','Banner Status','R','frmBannerClicks','Banner Clicks','RinRange1:1','frmBannerImpressions','Banner Impressions','RinRange1:1','frmBannerExpiry','Banner Expiry','R','frmBannerURL','Banner URL','isUrl','frmBannerImage','Banner Image','R'))
			{
				return true;
			}
			else 
			{
				return false;	
			}
		}
		else
		{
			if(validateForm(document.getElementById(formname).id,'frmBannerPage', 'Banner Page','R','frmBannerTitle', 'Banner Title','R','frmBannerPosition','Banner Position','R','frmBannerStatus','Banner Status','R','frmBannerClicks','Banner Clicks','RinRange1:1','frmBannerImpressions','Banner Impressions','RinRange1:1','frmBannerExpiry','Banner Expiry','R','frmBannerURL','Banner URL','isUrl'))
			{
				return true;
			}
			else 
			{
				return false;	
			}
		}
	}
}

/***************************
Function name : changeBannerSizeHelp
Return type : none
Date created : 17th December 2007
Date last modified : 17th December 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to show banner upload size.
User instruction : changeBannerSizeHelp(varPosition)
************************************/
function changeBannerSizeHelp(varPosition)
{
	if(varPosition=='Top' || varPosition=='Bottom')
	{
		document.getElementById('BannerSizeHelp').innerHTML = '(Max banner size = 700 x 100)';
	}
	if(varPosition=='Left' || varPosition=='Right')
	{
		document.getElementById('BannerSizeHelp').innerHTML = '(Max banner size = 200 x 200)';
	}
}

/*****************************
Function name : showBannerOptions
Return type : none
Date created : 17th December 2007
Date last modified : 17th December 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to switch between banner image and code.
User instruction : showBannerOptions(sourceField,targetField)
************************************/
function showBannerOptions(option)
{
	if(option == 'image')
	{
		document.getElementById('BannerOptions2').style.display = 'block';
		document.getElementById('BannerOptions1').style.display = 'none';
		document.getElementById('BannerOptionsText').innerHTML = '<span class="color_red">*</span> Banner Image:';
		document.getElementById('frmBannerImage').focus();
	}
	else
	{
		document.getElementById('BannerOptions2').style.display = 'none';	
		document.getElementById('BannerOptions1').style.display = 'block';
		document.getElementById('BannerOptionsText').innerHTML = '<span class="color_red">*</span> HTML Code:';
		document.getElementById('frmBannerHTMLCode').focus();	
	}
}
//****************************Advertisement End Here*************************************
//****************************Content Management Start Here******************************
/*****************************
Function name : validatePageForm
Return type : none
Date created : 27th November 2007
Date last modified : 27th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to validate the CMS page form.
User instruction : validatePageForm(sourceField,targetField)
************************************/
function validatePageForm(formname)
{
	if(validateForm(document.getElementById(formname).id,'frmPageTitle','Page Title','R'))
	{	
		return true;
	} 
	else 
	{
		return false;
	} 
}

/*****************************
Function name : validateNewsForm
Return type : none
Date created : 27th November 2007
Date last modified : 27th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to validate the news form.
User instruction : validateNewsForm(formname)
************************************/
function validateNewsForm(formname)
{
	if(validateForm(document.getElementById(formname).id,'frmNewsTitle','News Title','R','frmNewsPageTitle','Page Title','R','frmNewsStatus','News Status','R'))
	{	
		return true;
	} 
	else 
	{
		return false;
	} 	
}

/*****************************
Function name : validateEventForm
Return type : none
Date created : 27th November 2007
Date last modified : 27th November 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to validate the events form.
User instruction : validateEventForm(formname)
************************************/
function validateEventForm(formname)
{
	if(validateForm(document.getElementById(formname).id,'frmEventDate','Event Date','R','frmEventTitle','Event Title','R'))
	{	
		return true;
	} 
	else 
	{			
		return false;
	} 	
}
//****************************Content Management End Here********************************

//****************************Frontend Start Here****************************************
/*****************************
Function name : validateSubscription
Return type : none
Date created : 27th December 2007
Date last modified : 27th December 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to validate the subscription form.
User instruction : validateSubscription(formname)
************************************/
function validateSubscription(formname)
{
	if(validateForm(document.getElementById(formname).id,'frmSubscriberName','Subscriber Name','R','frmSubscriberEmail','Subscriber Email','RisEmail'))
	{	
		return true;
	} 
	else 
	{			
		return false;
	} 	
}

/*****************************
Function name : validateApplyFor
Return type : none
Date created : 27th December 2007
Date last modified : 27th December 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to validate the apply form.
User instruction : validateApplyFor(formname)
************************************/
function validateApplyFor(formname)
{
	if(validateForm(document.getElementById(formname).id,'frmSubject', 'Subject','R', 'frmName', 'Name', 'R','frmEmail', 'Email', 'RisEmail','frmPhone', 'Phone', 'RisNaN','frmAddress','Address','R'))
	{			
		return true;
	}
	else 
	{
		return false;	
	}
}

/*****************************
Function name : validateReview
Return type : none
Date created : 27th December 2007
Date last modified : 27th December 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to validate the review form.
User instruction : validateReview(formname)
************************************/
function validateReview(formname)
{
	if(validateForm(document.getElementById(formname).id, 'frmName', 'Name', 'R','frmEmail', 'Email', 'RisEmail','frmRating','Rating','R', 'frmReview', 'Review', 'R'))
	{			
		return true;
	}
	else 
	{
		return false;	
	}
}

/*****************************
Function name : updateBannerClicks
Return type : none
Date created : 17th December 2007
Date last modified : 17th December 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to update banner clicks.
User instruction : updateBannerClicks(BannerID)
************************************/
function updateBannerClicks(BannerID)
{
	doAjax('rpc.php','type=updateClicks&BID='+BannerID,'','post','0');
}

/*****************************
Function name : showRatingImg
Return type : none
Date created : 18th December 2007
Date last modified : 18th December 2007
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to show rating images.
User instruction : showRatingImg(RatingValue)
************************************/
function showRatingImg(RatingValue)
{
	var i;
	for(i=0;i<=5;i++)
	{
		var element = 'rating_'+ i;
		if(i == RatingValue)
		{
			document.getElementById(element).style.display = 'block';
		}
		else
		{
			document.getElementById(element).style.display = 'none';
		}
	}
}

/*****************************
Function name : recommenderSearch
Return type : none
Date created : 27th December 2007
Date last modified : 07th January 2008
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to send features for recommnder search.
User instruction : recommenderSearch(spanChk)
************************************/
function recommenderSearch(spanChk)
{
	var xState=spanChk.checked;
	var theBox=spanChk;
	var value = '';
	var radioValue = '';

	elm=document.getElementById('recommender_form').elements;
	for(i=0;i<elm.length;i++)
	{
		if(elm[i].type=="checkbox")
		{
			if(elm[i].checked == true)
			{
				value = value + elm[i].value + ',';
			}
		}
		if(elm[i].type=="radio")
		{
			if(elm[i].checked == true)
			{
				radioValue = elm[i].value;
			}
		}
	}
	doAjax('rpc.php','type=search&feature='+value+'&suit='+radioValue,'showSearchResults','post','2');
}

/*****************************
Function name : showSearchResults
Return type : none
Date created : 27th December 2007
Date last modified : 07th January 2008
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to load the resuts as per recommender search.
User instruction : showSearchResults(item)
************************************/
function showSearchResults(item)
{
	if(!isNaN(item))
	{
		document.getElementById('CreditCardNumber').innerHTML = '<label style="font-size:70px; font-weight:bold;">' + item + '</label>';
		if(item=='0')
		{
			document.getElementById('viewRecommendedCards').innerHTML = '<label style="font-size:13px; font-weight:bold;">No Credit Cards</label>';
		}
		else
		{
			document.getElementById('viewRecommendedCards').innerHTML = '<a href="credit-card-guide/recommended.html"><img src="common/images/recommended_card.gif" alt="View Recommended Cards" title="View Recommended Cards" style="float:none;" /></a>';	
		}
	}
	else
	{
		document.getElementById('CreditCardNumber').innerHTML =  item;
	}
}

//****************************Frontend End Here******************************************
/*****************************
Function name : getFeatures
Return type : none
Date created : 20th January 2008
Date last modified : 20th January 2008
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to get features as per category.
User instruction : getFeatures(varCategoryType)
************************************/
function getFeatures(varCategoryType)
{
	doAjax('seo_ajax.php','type='+ varCategoryType,'showFeatures','post','1');
}

/*****************************
Function name : showFeatures
Return type : none
Date created : 20th January 2008
Date last modified : 20th January 2008
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to load features as per category.
User instruction : showFeatures(item)
************************************/
function showFeatures(item)
{
	document.getElementById('FeaturesColumn').innerHTML = item;
}

/*****************************
Function name : getFeatureDetails
Return type : none
Date created : 20th January 2008
Date last modified : 20th January 2008
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to get features as per category and feature.
User instruction : getFeatureDetails(varFeatureType,varCategoryType)
************************************/
function getFeatureDetails(varFeatureType,varCategoryType)
{
	doAjax('seo_ajax.php','feature='+ varFeatureType+'&cat='+varCategoryType,'showFeatureDetails','post','0');
}

/*****************************
Function name : showFeatureDetails
Return type : none
Date created : 20th January 2008
Date last modified : 20th January 2008
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to load features as per category and feature.
User instruction : showFeatureDetails(item)
************************************/
function showFeatureDetails(item)
{
	var featureDetails = item.split('~1!2@3#4$5%');
	document.getElementById('TitleColumn').innerHTML = featureDetails[0];
	document.getElementById('KeywordsColumn').innerHTML = featureDetails[1];
	document.getElementById('DescriptionColumn').innerHTML = featureDetails[2];
}

/*****************************
Function name : validateSEOForm
Return type : none
Date created : 20th January 2008
Date last modified : 20th January 2008
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to validate SEO form.
User instruction : validateSEOForm(formname)
************************************/
function validateSEOForm(formname)
{
	if(validateForm(document.getElementById(formname).id, 'frmCategory', 'Category', 'R','frmFeatures', 'Features', 'R','frmRating','Rating','R', 'frmReview', 'Review', 'R'))
	{			
		return true;
	}
	else 
	{
		return false;	
	}
}

/*****************************
Function name : getBannerSubPages
Return type : none
Date created : 28th January 2008
Date last modified : 28th January 2008
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to generate banner sub pages.
User instruction : getBannerSubPages(varBannerPage,varMenuOptions,varSelectedSubPage)
************************************/
function getBannerSubPages(varBannerPage,varMenuOptions,varSelectedSubPage)
{
	doAjax('rpc.php','page='+ varBannerPage+'&option='+varMenuOptions+'&subpage='+varSelectedSubPage,'showBannerSubPages','post','1');
}

/*****************************
Function name : showBannerSubPages
Return type : none
Date created : 28th January 2008
Date last modified : 28th January 2008
Author : Charanjeet Singh
Last modified by : Charanjeet Singh
Comments : This function is used to show banner sub pages.
User instruction : showBannerSubPages(item)
************************************/
function showBannerSubPages(item)
{
	document.getElementById('BannerSubPages').innerHTML = item;
}
