// JScript source code
function stringWordWrap(spanid,length)
{
	var oObject = document.getElementById( spanid );
	var strText = oObject.innerHTML;
	
	if ( 0 == length )
		return false;
		
	var divFactor = Math.ceil( strText.length/length );

	if (oObject != null)
	{
		if ( 0 != strText.length )
		{
			var value="";
			var start = 0;
			var end = 0;
			for (i = 0; i < divFactor; i++)
			{
					end = start + length;
					value += strText.substring(start,end) + " ";
					start = end;
			}
			oObject.innerHTML = value;
		}
	}
}
function matchExpression(str,exp)
{
	var s= str;
	var re = new RegExp(exp);
	if (!s.match(re))
		return false;
	else
		return true;
}
function isEmailIdValid(emailStr)
{
	
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)<>@,;+={}/:\\\\\\\"\'\!\?\%\|\`\~\$\#\^\&\*\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);
	var result = true;
	if (matchArray==null) {
		return false;
	}
	var user=matchArray[1];
	var domain=matchArray[2];
	if (user.match(userPat)==null) {	
		return false;
	}
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
	// this is an IP address
	for (var i=1;i<=4;i++) {
		if (IPArray[i]>255) {
			return false;
		}
	}
		return true;
	}
	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
		return false;
		}

	var atomPat=new RegExp(atom,"g");
	var domArr=domain.match(atomPat);
	var len=domArr.length;
	if (domArr[domArr.length-1].length<2) {
	return false;
	}

	if (len<2) {
	return false;
	}
	return result;
}

function isCreditCardNumberValid(cardType,cardNum)
{
	var result = false;
	cardType = cardType.toUpperCase();
	
	var cardLen = cardNum.length;
	var firstdig = cardNum.substring(0,1);
	var seconddig = cardNum.substring(1,2);
	var first4digs = cardNum.substring(0,4);

	switch (cardType)
	{
		case "VISA":
			result = ((cardLen == 16) || (cardLen == 13)) && (firstdig == "4");
			break;
		case "AMEX":
			var validNums = "47";
			result = (cardLen == 15) && (firstdig == "3") && (validNums.indexOf(seconddig)>=0);
			break;
		case "MASTERCARD":
			var validNums = "12345";
			result = (cardLen == 16) && (firstdig == "5") && (validNums.indexOf(seconddig)>=0);
			break;
		case "DISCOVER":
			result = (cardLen == 16) && (first4digs == "6011");
			break;
		case "DINERS":
			var validNums = "068";
			result = (cardLen == 14) && (firstdig == "3") && (validNums.indexOf(seconddig)>=0);
			break;
	}
	return result;
}
function IsValidSecCode(cardType,seccode)
 {
	var result = false;
	cardType = cardType.toUpperCase();	
	switch (cardType)
	{
		case "VISA":
			result = (seccode.length== 3);
			break;
		case "AMEX":		
			result = (seccode.length == 4);
			break;
		case "MASTERCARD":		
			result = (seccode.length == 3);
			break;
		case "DISCOVER":
			result = (seccode.length== 3);
			break;		
	}
	return result;
 }
function isCardAlgoValid(str)
{
  var result = true;

  var sum = 0; 
  var mul = 1; 
  var strLen = str.length;
  
  for (i = 0; i < strLen; i++) 
  {
    var digit = str.substring(strLen-i-1,strLen-i);
    var tproduct = parseInt(digit ,10)*mul;
    if (tproduct >= 10)
      sum += (tproduct % 10) + 1;
    else
      sum += tproduct;
    if (mul == 1)
      mul++;
    else
      mul--;
  }
  if ((sum % 10) != 0)
    result = false;
  return result;
}

function isPhoneValid(strPh1,strPh2,strPh3)
{
	var s= strPh1 + "-" + strPh2 + "-" + strPh3;
	if (s=="--") return true;
	var re = new RegExp("\\d{3}-\\d{3}-\\d{4}");
	if (!s.match(re))
		return false;
	else
		return true;
}


var TPBrw,TPVr;
function chkTPBrw()
{
	try
	{
	var str = navigator.userAgent;
	var st,end;
	str = str.toUpperCase();
	if (str.indexOf("MSIE")>0)
		TPBrw = 1;
	else if (str.indexOf("NETSCAPE")>0)
		TPBrw = 2;
	else if (str.indexOf("FIREFOX")>0)
		TPBrw = 3;
	else
		TPBrw = -1;
	
	if (TPBrw==1){
		st = str.indexOf("MSIE ");
		end = str.indexOf(";",st + 5);
		if(end==-1) end = str.length;
		TPVr = getBrwVrsn(str.substring(st+5,end));}
	if(TPBrw==2){
		st = str.indexOf("NETSCAPE/");
		end = str.indexOf(" ",st);
		if(end==-1) end = str.length;
		TPVr = getBrwVrsn(str.substring(st+9,end));	}
	if(TPBrw==3){
		st = str.indexOf("FIREFOX/");
		end = str.indexOf(" ",st);
		if(end==-1) end = str.length;
		TPVr = getBrwVrsn(str.substring(st+8,end));}
	}
	catch(e)
	{
		TPBrw = -1;
	}
		
}

function getBrwVrsn(str)
{
	var mVer,vr,x,y,st,ed,l,ivr,z;
	m=3;l=2;
	st=0;ed=0;st=0;mVer=0;y=Math.pow(10,l-1);x=y*10;z=0;
	
	ed=str.indexOf(".", st);
	if(ed==-1) ed=str.length;
	mVer = str.substring(st,ed);
	z=z+1;
	
	while(ed<str.length&&mVer<Math.pow(x,m-1))
	{
		st = str.indexOf(".", st+1);
		ed = str.indexOf(".", st+1);
		if(ed==-1) ed=str.length;
		vr = str.substring(st+1,ed);
		ivr = parseInt(parseInt(vr)*Math.pow(10,l-vr.length));
		if(isNaN(ivr))ivr=0;
		mVer = mVer*x+ivr;
		z=z+1;
	}
	mVer=mVer*Math.pow(x,m-z);
	if(isNaN(mVer))mVer=0;
	return parseInt(mVer);
}

function chkOS()
{
	if(navigator.userAgent.indexOf("Mac")!=-1)
		parent.location.href = "mac.htm"
}

function chkBrw()
{
	chkTPBrw();
	if (TPBrw == -1)
		location.href="browser.aspx";
	if(((TPBrw==1)&&(TPVr<55000))||((TPBrw==2)&&(TPVr<71000))||((TPBrw==3)&&(TPVr<10000)))
		location.href="browser.aspx";
	if (navigator.userAgent.toUpperCase().indexOf("OPERA") > -1)
		location.href="browser.aspx";
}
function floatChkBox()
{
	for (var S = 0; S < document.styleSheets.length; S++)
	{
		if(TPBrw!=1) 
		{
			for (var R = 0; R < document.styleSheets[S]["cssRules"].length; R++) 
			{
				if (document.styleSheets[S]["cssRules"][R].selectorText == ".spnPrc1") 
				{
					document.styleSheets[S]["cssRules"][R].style.paddingTop = "5px";
				}
			}
		}
		else
		{
			for (var R = 0; R < document.styleSheets[S]["rules"].length; R++) 
			{
				if (document.styleSheets[S]["rules"][R].selectorText == ".spnPrc1") 
				{
					document.styleSheets[S]["rules"][R].style.paddingTop = "0px";
				}
			}		
		}
	}
}		
					
chkOS();
chkBrw();
floatChkBox();

function CheckMailObject()
{
	var obj;
	try
	{
		if (TPBrw > 1)
		{
			obj = GetIMMailActiveXObj();
			obj.CheckIM(0);
		}
		return true;
	}
	catch(e)
	{
		if (TPBrw > 1)
		{
			try
			{
				navigator.plugins.refresh(false);
				obj = GetIMMailActiveXObj();
				obj.CheckIM(0);
				return true;
			}
			catch(e)
			{
				return false;
			}
		}
		return false;
	}
}

function CheckBrowserObject()
{
	var obj;
	try
	{
		if (TPBrw > 1)
		{
			obj = GetBrowseFldrActiveXObj();
			obj.IsValidFolder("XX");
		}
		return true;
	}
	catch(e)
	{
		return false;
	}
}

function OpenWelcome()
{
			var winobj = window.opener;
			if((typeof winobj == 'undefined') || winobj==null)
			{
				document.location.href="Welcome.aspx"
			}
			else
			{
				window.opener.location.href="Welcome.aspx";
				window.opener.focus();
				window.close();
			}
}

// This function is used for SongTouch website, if required plugins not installed it redirect user to
// InstallPlugins.aspx page.
function OpenWelcomeWindow(pageName)
{
			var winobj = window.opener;			
			if((typeof winobj == 'undefined') || winobj==null)
			{
				window.parent.location.href = pageName;	//"InstallPlugins.aspx"
			}
			else
			{
				window.opener.location.href = pageName;	//"InstallPlugins.aspx";
				window.opener.focus();
				window.close();
			}
}

function GetIMMailActiveXObj()
{
	return GetActiveXObj("TPActiveX.IMMail","Mail1");
}

function GetBrowseFldrActiveXObj()
{
	return GetActiveXObj("TPActiveX.TCBrowseForFolder","objTCBrowseForFolder");
}

function GetDnldActiveXObj()
{
	return GetActiveXObj("DVC_PM.DVCTCIM","DVC_PM");
}

//creating activeXObj in a cross-browser way
function GetActiveXObj(progID,elementID)
{
	var activeXObj;
	if(window.ActiveXObject)
		activeXObj = new ActiveXObject(progID);
	else if (window.GeckoActiveXObject)
	{
		activeXObj = new GeckoActiveXObject(progID);	
	}
	else	
		activeXObj = document.getElementById(elementID);
	return activeXObj;
		
}
