 /*  #################        HEADER INFORMATION        #####################
    ------------------------------------------------------------------------
    Purpose of page        : common functions
    Page Name              : function.js
    Version Information    : 1st version
    Output Page            : functional dependant
    Date & Time            : 30th June 2006
    Modified               : 30th June 2006
    ------------------------------------------------------------------------
   #################        HEADER INFORMATION        ######################
  */
//removes the trailing spaces
function trim(pstrString)
{
  var intLoop=0;
  for(intLoop=0; intLoop<pstrString.length; )
  {
      if(pstrString.charAt(intLoop)==" ")
         pstrString=pstrString.substring(intLoop+1, pstrString.length);
      else
         break;
  }

  for(intLoop=pstrString.length-1; intLoop>=0; intLoop=pstrString.length-1)
  {
      if(pstrString.charAt(intLoop)==" ")
         pstrString=pstrString.substring(0,intLoop);
      else
         break;
  }
  return pstrString;
}




 function isInteger(s)
 {
   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function trim(pstrString)
{
        var intLoop=0;
        for(intLoop=0; intLoop<pstrString.length; )
        {
			if(pstrString.charAt(intLoop)==" ")
				pstrString=pstrString.substring(intLoop+1, pstrString.length);
			else
				break;
        }

        for(intLoop=pstrString.length-1; intLoop>=0; intLoop=pstrString.length-1)
        {
                if(pstrString.charAt(intLoop)==" ")
                        pstrString=pstrString.substring(0,intLoop);
                else
                        break;
        }
        return pstrString;
}

function checknumeric(obj)
{
	var str;
	var id=parseInt(obj.value);
	if(isNaN(id))
		return true;
	else
		return false;
}

//URL Validation
function isValidateURL(obj,msg)
{				
	var urlRegxp =   /^(((ht|f)tp(s?))\:\/\/)?(www.|[a-zA-Z].)[a-zA-Z0-9\-\.]+\.(com|edu|gov|mil|net|org|biz|info|name|museum|us|ca|uk|[a-zA-Z]{2,7})(\:[0-9]+)*(\/($|[a-zA-Z0-9\.\,\;\?\'\\\+&amp;%\$#\=~_\-]+))*$/; 
	
	var strurl= trim(obj.value);
	if (urlRegxp.test(strurl) != true)
	 {
	     alert('Invalid URL');
	     return false;
	 }
	 else
	 	return true;
}
//check special character
function IsValidUsername(sText)
{
   var ValidChars="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_"
   var charflag=true;
   var Char; 
   for (i = 0; i < sText.value.length; i++) 
   { 
      Char = sText.value.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
              charflag = false;
   }
   return charflag;
}

function extractNumber(obj, decimalPlaces, allowNegative)
{
	var temp = obj.value;
	
	// avoid changing things if already formatted correctly
	var reg0Str = '[0-9]*';
	if (decimalPlaces > 0) {
		reg0Str += '\\.?[0-9]{0,' + decimalPlaces + '}';
	} else if (decimalPlaces < 0) {
		reg0Str += '\\.?[0-9]*';
	}
	reg0Str = allowNegative ? '^-?' + reg0Str : '^' + reg0Str;
	reg0Str = reg0Str + '$';
	var reg0 = new RegExp(reg0Str);
	if (reg0.test(temp)) return true;

	// first replace all non numbers
	var reg1Str = '[^0-9' + (decimalPlaces != 0 ? '.' : '') + (allowNegative ? '-' : '') + ']';
	var reg1 = new RegExp(reg1Str, 'g');
	temp = temp.replace(reg1, '');

	if (allowNegative) {
		// replace extra negative
		var hasNegative = temp.length > 0 && temp.charAt(0) == '-';
		var reg2 = /-/g;
		temp = temp.replace(reg2, '');
		if (hasNegative) temp = '-' + temp;
	}
	
	if (decimalPlaces != 0) {
		var reg3 = /\./g;
		var reg3Array = reg3.exec(temp);
		if (reg3Array != null) {
			// keep only first occurrence of .
			//  and the number of places specified by decimalPlaces or the entire string if decimalPlaces < 0
			var reg3Right = temp.substring(reg3Array.index + reg3Array[0].length);
			reg3Right = reg3Right.replace(reg3, '');
			reg3Right = decimalPlaces > 0 ? reg3Right.substring(0, decimalPlaces) : reg3Right;
			temp = temp.substring(0,reg3Array.index) + '.' + reg3Right;
		}
	}
	
	obj.value = temp;
}
function blockNonNumbers(obj, e, allowDecimal, allowNegative)
{
	var key;
	var isCtrl = false;
	var keychar;
	var reg;
		
	if(window.event) {
		key = e.keyCode;
		isCtrl = window.event.ctrlKey
	}
	else if(e.which) {
		key = e.which;
		isCtrl = e.ctrlKey;
	}
	
	if (isNaN(key)) return true;
	
	keychar = String.fromCharCode(key);
	
	// check for backspace or delete, or if Ctrl was pressed
	if (key == 8 || isCtrl)
	{
		return true;
	}

	reg = /\d/;
	var isFirstN = allowNegative ? keychar == '-' && obj.value.indexOf('-') == -1 : false;
	var isFirstD = allowDecimal ? keychar == '.' && obj.value.indexOf('.') == -1 : false;
	
	return isFirstN || isFirstD || reg.test(keychar);
}

function IsNumeric(sText)
{
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }
//rahul

function CheckSpecialCharcter(obj){
	var ar = obj.value.split(' ');
	if(ar.length >= 2)
	{
		alert("Spaces not allowed!");
		obj.select();
		return false;
	}

	var ValidChars="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_"
	var charflag=true;
	var Char; 
	for (i = 0; i < obj.value.length; i++) 
	{ 
		Char = obj.value.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) 
			charflag = false;
	}
	if(charflag == false)
	{
		alert("Special characters not allowed");
		return false;
	}
	return true;
	
}

function fnEnterPressed(e)
{
  var characterCode
  if(e && e.which)
  {           // NN4 specific code
	e = e
    characterCode = e.which
  }
  else
  {
	e = e
    characterCode = e.keyCode // IE specific code
  }

  if (characterCode == 13)
  {
		return true;
  }
  else
  {
		return false;
  }
}

//Fucntions for Searching Starts Here
function setBreadCrumbLink(type,sfor,pth)
{
	
	document.getElementById("ref_ser_flag").value="0";
	var shop_id=document.frm.shop_id.value;
	var shop=document.frm.shop.value;
	var product_cnt=10;
	
	/* code added on date 30 oct 09 for removing values from variable start here */
	if(document.getElementById("catnotlike"))
	document.getElementById("catnotlike").value="";
	if(document.getElementById("brandnotlike"))
	document.getElementById("brandnotlike").value="";
	if(document.getElementById("shopnotlike"))
	document.getElementById("shopnotlike").value="";
	if(document.getElementById("colornotlike"))
	document.getElementById("colornotlike").value="";
	
	if(document.getElementById("catallmain"))
	document.getElementById("catallmain").value="";
	if(document.getElementById("brandallmain"))
	document.getElementById("brandallmain").value="";
	if(document.getElementById("shopallmain"))
	document.getElementById("shopallmain").value="";
	if(document.getElementById("per_newprod"))
	document.getElementById("per_newprod").value="";
	
	if(document.getElementById("check_specialoff"))
	document.getElementById("check_specialoff").value="";
	if(document.getElementById("check_pricedrop"))
	document.getElementById("check_pricedrop").value="";
	if(document.getElementById("check_newprod"))
	document.getElementById("check_newprod").value="";


	if(document.getElementById("per_pricerange_min"))
	document.getElementById("per_pricerange_min").value="";
	if(document.getElementById("per_pricerange_max"))
	document.getElementById("per_pricerange_max").value="";
	if(document.getElementById("per_spoffer_range_min"))
	document.getElementById("per_spoffer_range_min").value="";
	if(document.getElementById("per_spoffer_range_max"))
	document.getElementById("per_spoffer_range_max").value="";
	if(document.getElementById("per_spoffer_prod_count"))
	document.getElementById("per_spoffer_prod_count").value="";
	if(document.getElementById("per_price_drop_range_min"))
	document.getElementById("per_price_drop_range_min").value="";

	if(document.getElementById("per_price_drop_range_max"))
	document.getElementById("per_price_drop_range_max").value="";
	if(document.getElementById("per_price_drop_prod_count"))
	document.getElementById("per_price_drop_prod_count").value="";
	if(document.getElementById("per_new_prod_range_min"))
	document.getElementById("per_new_prod_range_min").value="";
	if(document.getElementById("per_new_prod_range_max"))
	document.getElementById("per_new_prod_range_max").value="";
	if(document.getElementById("per_new_prod_count"))
	document.getElementById("per_new_prod_count").value="";
	
	if(document.getElementById("per_specialoff"))
	document.getElementById("per_specialoff").value="";
	if(document.getElementById("per_pricedrop"))
	document.getElementById("per_pricedrop").value="";
	if(document.getElementById("per_newprod"))
	document.getElementById("per_newprod").value="";
	
	if(document.getElementById("cat_sel_flag"))
	document.getElementById("cat_sel_flag").value="1";
	if(document.getElementById("brand_sel_flag"))
	document.getElementById("brand_sel_flag").value="1";
	if(document.getElementById("shop_sel_flag"))
	document.getElementById("shop_sel_flag").value="1";
	if(document.getElementById("color_sel_flag"))
	document.getElementById("color_sel_flag").value="1";
	
	document.getElementById("page").value='';	
	document.getElementById("Pgno").value='';	
	document.getElementById("Plimit").value='';	
/* code added on date 30 oct 09 for removing values from variable start here*/

	if(sfor==1)
	{
		document.frm.action=pth+'special-offers/';
	}
	if(sfor==2)
	{
		document.frm.action=pth+'prices-dropping/';

	}
	if(sfor==3)
	{
		document.frm.action=pth+'new-products/';

	}
	if(sfor==4)
	{
		var category_id = document.frm.category_id.value;
		if(category_id!='')
		{
			var category = document.frm.category.value;			
			document.frm.action=pth+'categories/'+category+'/'+category_id+'/';
		}
		else
			document.frm.action=pth+'categories/';
	}
	if(sfor==5)
	{
		var brand_id=document.getElementById("brand").value
		brand_id = brand_id.replace("#*#","'");	
		if(brand_id!='')
			document.frm.action=pth+'brands/'+brand_id+'/';		
		else
			document.frm.action=pth+'brands/';
	}
	if(sfor==6)
	{		
		if(document.frm.shop_id.value!='')
			document.frm.action=pth+'shops/'+shop_id+'/'+shop+'/';
		else
			document.frm.action=pth+'shops/';

	}
	if(sfor==7)
	{
		document.frm.action=pth+'';
	}
	if(sfor==8)
	{
		var keyword=document.frm.searchInput.value;
		document.frm.action=pth+"keyword/"+keyword+"/";
	}
	if(sfor==9)
	{
		var color_hex=document.frm.color_hex.value;
		if(color_hex!="")
		document.frm.action=pth+"colors/"+color_hex+"/";

		else
		document.frm.action=pth+"colors/";
	}
		
	document.frm.submit();
}
//Fucntions for Searching Ends Here

//Functions for paging starts here

function getpage(pg,pn,pl)
{	
	document.frm.page.value=pg;
	document.frm.Pgno.value=pn;
	document.frm.Plimit.value=pl;
	document.frm.submit();
}


//Functions for admin side paging starts here
function getpageadmin(pg,pn,pl)
{	
	document.frmAdmin.page.value=pg;
	document.frmAdmin.Pgno.value=pn;
	document.frmAdmin.Plimit.value=pl;
	document.frmAdmin.submit();
}

function fnNext1(Plimit)
{
	document.frm.page.value=parseInt(Plimit)+1;
	document.frm.Pgno.value=parseInt(Plimit)+1;
	document.frm.Plimit.value=parseInt(Plimit)+10;
	document.frm.submit();
}

function fnPrevious1(Plimit)
{
	document.frm.page.value=parseInt(Plimit)-19;
	document.frm.Pgno.value=parseInt(Plimit)-19;
	document.frm.Plimit.value=parseInt(Plimit)-10;
	
	if(document.frm.page.value<=0)
	{
		document.frm.page.value=1;
		document.frm.Pgno.value=1;
		document.frm.Plimit.value=10;
	}
	document.frm.submit();
}


function fnNext1_admin(Plimit)
{
	document.frmAdmin.page.value=parseInt(Plimit)+1;
	document.frmAdmin.Pgno.value=parseInt(Plimit)+1;
	document.frmAdmin.Plimit.value=parseInt(Plimit)+10;
	document.frmAdmin.submit();
}

function fnPrevious1_admin(Plimit)
{
	document.frmAdmin.page.value=parseInt(Plimit)-19;
	document.frmAdmin.Pgno.value=parseInt(Plimit)-19;
	document.frmAdmin.Plimit.value=parseInt(Plimit)-10;
	
	if(document.frmAdmin.page.value<=0)
	{
		document.frmAdmin.page.value=1;
		document.frmAdmin.Pgno.value=1;
		document.frmAdmin.Plimit.value=10;
	}
	document.frmAdmin.submit();
}
//Functions for paging ends here


function extractNumberforcomma(obj, decimalPlaces, allowNegative)
{
	var temp = obj.value;
	
	// avoid changing things if already formatted correctly
	var reg0Str = '[0-9]*,+';
	if (decimalPlaces > 0) {
		reg0Str += '\\.?[0-9]{0,' + decimalPlaces + '},+';
	} else if (decimalPlaces < 0) {
		reg0Str += '\\.?[0-9]*,+';
	}
	reg0Str = allowNegative ? '^-?' + reg0Str : '^' + reg0Str;
	reg0Str = reg0Str + '$';
	var reg0 = new RegExp(reg0Str);
	if (reg0.test(temp)) return true;

	// first replace all non numbers
	var reg1Str = '[^0-9' + (decimalPlaces != 0 ? '.' : '') + (allowNegative ? '-' : '') + ',+]';
	var reg1 = new RegExp(reg1Str, 'g');
	temp = temp.replace(reg1, '');

	if (allowNegative) {
		// replace extra negative
		var hasNegative = temp.length > 0 && temp.charAt(0) == '-';
		var reg2 = /-/g;
		temp = temp.replace(reg2, '');
		if (hasNegative) temp = '-' + temp;
	}
	
	if (decimalPlaces != 0) {
		var reg3 = /\./g;
		var reg3Array = reg3.exec(temp);
		if (reg3Array != null) {
			// keep only first occurrence of .
			//  and the number of places specified by decimalPlaces or the entire string if decimalPlaces < 0
			var reg3Right = temp.substring(reg3Array.index + reg3Array[0].length);
			reg3Right = reg3Right.replace(reg3, '');
			reg3Right = decimalPlaces > 0 ? reg3Right.substring(0, decimalPlaces) : reg3Right;
			temp = temp.substring(0,reg3Array.index) + '.' + reg3Right;
		}
	}
	
	obj.value = temp;
}
function blockNonNumbersforcomma(obj, e, allowDecimal, allowNegative)
{
	var key;
	var isCtrl = false;
	var keychar;
	var reg;
		
	if(window.event) {
		key = e.keyCode;
		isCtrl = window.event.ctrlKey
	}
	else if(e.which) {
		key = e.which;
		isCtrl = e.ctrlKey;
	}
	
	if (isNaN(key)) return true;
	else if (key==44)
	{
		return true;
	}
	
	keychar = String.fromCharCode(key);
	
	// check for backspace or delete, or if Ctrl was pressed
	if (key == 8 || isCtrl)
	{
		return true;
	}

	reg = /\d/;
	var isFirstN = allowNegative ? keychar == '-' && obj.value.indexOf('-') == -1 : false;
	var isFirstD = allowDecimal ? keychar == '.' && obj.value.indexOf('.') == -1 : false;
	
	return isFirstN || isFirstD || reg.test(keychar);
}

function fnclear(obj)
{
	if(obj.value=="")
		obj.value="";
	
}

function submitSearch(pth)
{
	/*Code added on 16 Dec to unset variables starts here*/
	document.getElementById("brand").value='';
	document.getElementById("shop").value='';
	document.getElementById("category").value='';
	document.getElementById("category_id").value='';
	document.getElementById("shop_id").value='';
	document.getElementById("serType").value='';
	document.getElementById("serFor").value='';
	document.getElementById("product_id").value='';
	
	if(document.getElementById("catnotlike"))
	document.getElementById("catnotlike").value="";
	if(document.getElementById("brandnotlike"))
	document.getElementById("brandnotlike").value="";
	if(document.getElementById("shopnotlike"))
	document.getElementById("shopnotlike").value="";
	
	if(document.getElementById("catallmain"))
	document.getElementById("catallmain").value="";
	if(document.getElementById("brandallmain"))
	document.getElementById("brandallmain").value="";
	if(document.getElementById("shopallmain"))
	document.getElementById("shopallmain").value="";
	if(document.getElementById("per_newprod"))
	document.getElementById("per_newprod").value="";
	
	if(document.getElementById("check_specialoff"))
	document.getElementById("check_specialoff").value="";
	if(document.getElementById("check_pricedrop"))
	document.getElementById("check_pricedrop").value="";
	if(document.getElementById("check_newprod"))
	document.getElementById("check_newprod").value="";


	if(document.getElementById("per_pricerange_min"))
	document.getElementById("per_pricerange_min").value="";
	if(document.getElementById("per_pricerange_max"))
	document.getElementById("per_pricerange_max").value="";
	if(document.getElementById("per_spoffer_range_min"))
	document.getElementById("per_spoffer_range_min").value="";
	if(document.getElementById("per_spoffer_range_max"))
	document.getElementById("per_spoffer_range_max").value="";
	if(document.getElementById("per_spoffer_prod_count"))
	document.getElementById("per_spoffer_prod_count").value="";
	if(document.getElementById("per_price_drop_range_min"))
	document.getElementById("per_price_drop_range_min").value="";

	if(document.getElementById("per_price_drop_range_max"))
	document.getElementById("per_price_drop_range_max").value="";
	if(document.getElementById("per_price_drop_prod_count"))
	document.getElementById("per_price_drop_prod_count").value="";
	if(document.getElementById("per_new_prod_range_min"))
	document.getElementById("per_new_prod_range_min").value="";
	if(document.getElementById("per_new_prod_range_max"))
	document.getElementById("per_new_prod_range_max").value="";
	if(document.getElementById("per_new_prod_count"))
	document.getElementById("per_new_prod_count").value="";
	
	if(document.getElementById("per_specialoff"))
	document.getElementById("per_specialoff").value="";
	if(document.getElementById("per_pricedrop"))
	document.getElementById("per_pricedrop").value="";
	if(document.getElementById("per_newprod"))
	document.getElementById("per_newprod").value="";
	
	if(document.getElementById("cat_sel_flag"))
	document.getElementById("cat_sel_flag").value="1";
	if(document.getElementById("brand_sel_flag"))
	document.getElementById("brand_sel_flag").value="1";
	if(document.getElementById("shop_sel_flag"))
	document.getElementById("shop_sel_flag").value="1";
	
	if(document.getElementById("ref_ser_flag"))
		document.getElementById("ref_ser_flag").value=0;
	/*Code added on 16 Dec to unset variables ends here*/
		
		document.getElementById("page").value="";
		document.getElementById("Pgno").value="";
		document.getElementById("Plimit").value="";
		
		if(document.getElementById("searchInput").value!="" && document.getElementById("searchInput").value!='')
		{
			var keyword=document.getElementById("searchInput").value;

			var keylen = keyword.length;
			var key1 = keyword.charAt(0);
			var key2 = keyword.charAt(keylen-1);
			var keywordnew;
			var keyword1 = "";
			if(key1=="'" || key1=='"')
			{
				keyword1 = keyword.substring(1);
			}
			else if((key2=="'" || key2=='"') && (key1=="'" || key1=='"'))
			{
				keyword1 = keyword1.substring(0,keylen-2);
			}
			else if(key2=="'" || key2=='"')
			{
				keyword1 = keyword.substring(0,keylen-1);
			}
			
			if(keyword1!="")
				keywordnew = keyword1;// keyword.replace(/[^a-zA-ZÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Â ÃƒÂ¢Ã¢â€šÂ¬Ã¢â€žÂ¢ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬Ãƒâ€¦Ã‚Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¬-ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Â ÃƒÂ¢Ã¢â€šÂ¬Ã¢â€žÂ¢ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¿0-9\']+/g,'');
			else
				keywordnew = keyword;
			keywordnew= keywordnew.replace(/[^a-z-_A-ZÀ-ÿ0-9\ ']+/g,' ');
		document.frm.action=pth+"keyword/"+keywordnew+"/";
		document.frm.submit();
		}	
}
function fnGetcri(crid)
{
	document.getElementById("sercri").value=crid;
	document.frm.submit();
}

function shopRedirec(url1,prdRef,shpRef,pth)
{
	//Code To update hit count starts here
	var url=pth+"hit_update.php";
	xmlHttp	=GetXmlHttpObject(handleHit)
	
	var parameters="prdRef="+prdRef+"&shpRef="+shpRef;
	xmlHttp.open("POST", url, false);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
	xmlHttp.send(parameters)
	
	//Code To update hit count ends here
	document.getElementById("prd_url").value=url1;
	tb_show(null,pth+'seeProduct.php?keepThis=true&prdUrl='+url1+'&TB_iframe=true&height=340&width=650&modal=true','');
	setTimeout('setRedirect()',5000);
}

function setRedirect()
{
	var re_url=document.getElementById("prd_url").value;
	var new_url=re_url.replace(/thcom/g,"'") 
	var new_url2=new_url.replace(/thand/g,"&") 
	var new_url1=new_url2.replace(/thper/g,"%")
	if(window.open(new_url1,target='_blank'))
	{
		parent.tb_remove();
	}
}

function handleHit()
{
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{
		xmlHttp.responseText;	
	}
}


