var dom = (document.getElementById)? true:false;
var live = 0;
var whitespace =" \t\n\r ";
// Used to show and hide the FCK Editor
var iEdDisp = 0;
var iEdOn = 0;
var prvTab = 0;

var flagOf, flag1;
var flag, spCFlag;
var strErr;
var strErrOf;
var pc = new Image(); 
var pic = new Image(); 
var pic2 = new Image(); 
var pgNm = "";
strErr ="";
strErrOf = "";
flag= true;
flagOf = true;

var dom= (document.getElementById)? true:false
var ns4= (document.layers)? true:false
var ie4= (document.all && !document.getElementById)? true:false
var active1 = 0

if (dom) {
	doc = "document.getElementById(\"";
	sty = "\").style";
	wrp = "\")";
	htm = "\").innerHTML";
}

/* Routine for Inserting UI Text */
function fnUiLabel(sId, iLbl, iExt) {
	eval(doc + sId + wrp).innerHTML = fnLabel(iLbl,iExt);
}

function fnUiBtn(sId, iLbl) {
	eval(doc + sId + wrp).innerHTML = fnBtn(iLbl);
}

function fnUiText(sId, sTxt) {
	eval(doc + sId + wrp).innerHTML = sTxt;
}

/* Routine that displays the communication tabs - used on Home pages. */
function fnChangeTab(num) {
	sFn = eval("fnValStp" + live)();

	/*clicking Message tab after Project Details tab >> Validate Settings tab*/
	if ( (num > (live + 1) ) && (sFn == true) && (iEdDisp != 1) ) {
		prvTab = live + 1;
		alert('Before you proceed ahead to write the ' + oStCont[num] + '. \n' + 'Please fill the values under the ' + oStCont[prvTab] + ' tab.');
		sFn = false;
	}

	if (sFn == true) {
		var sNewLbl = oStCont[num];
		var sCurLbl = oStCont[live];
		var  sNewId = eval(doc + 'stp' + num + wrp);
		var sCurId = eval(doc + 'stp' + live + wrp);
		var sLs = '<span class="tabls">&nbsp;</span><span class="tabms">';
		var sRs = '</span><span class="tabrs">&nbsp;</span></a>';		
		var sNewTag = '<a class="active">' + sLs + sNewLbl + sRs;
		var sCurTag = '<a href="javascript:fnChangeTab(' + live + ')">' + sLs + sCurLbl + sRs;	
		oStep[live].css.display = "none";
		sNewId.innerHTML = sNewTag;
		sCurId.innerHTML = sCurTag;
		live = num;
		oStep[live].css.display = "block";
		if (iEdDisp==1 && iEdOn == 0) {
	        iEdOn = 1;
			fnEditor();		
		}
	}
}


/* Existing  Routines */
function createLayer(obj){
	this.css = eval(doc + obj + sty)
	return this
}

function init(pg) {
	oQuest = new Array();
	var qname = ''
	for (var k=0; k<=pg; k++) {
		qname = 'dv'+k
		oQuest[k] = new createLayer(qname);
	}
	oQuest[0].css.display = "block";
}

function changeActive(num){
	oQuest[active1].css.display = "none"
	active1 = num
	oQuest[active1].css.display = "block"
}

function fnModifyContact(ID) {     
	document.frmPost.hidEmail.value = ID;
	document.frmPost.hidMode.value = "M";
	document.frmPost.action = "modifyContact.asp";
	document.frmPost.submit();
}

function fnDelContact(ID) {     
	document.frmPost.hidEmail.value = ID;
	document.frmPost.hidMode.value = "D";
	var ans = confirm("- Are you sure you want to delete?");
	if (ans) {
		document.frmPost.action = "modifyContact.asp";
		document.frmPost.submit();
	} 
}

function fnValFileNm(field) {
	var frmNm = document.frmPost;
	var sFile = frmNm.txtFileNm.value.trim(); 
	var sproNm = frmNm.selPro.value.trim(); 
	var flag = true;
	strErr = "";
	if(sproNm == ""){
			flag = false;
			strErr = "- Project Name\n\n";	
	}
	if(sFile != "") { 
		sStrLen    = sFile.length;
		sPosition  = sFile.lastIndexOf(".");
		sSubString = sFile.substring(sPosition+1, sStrLen);
		if ((sSubString!="CSV")&&(sSubString!="csv")) {
			flag = false;
			strErr = strErr  + "- Valid Csv File\n\n";
		}
	}
	else{
		flag = false;
		strErr =  strErr  + "- File Name\n\n";
	}
	if(flag){
		frmNm.hidProId	.value = sproNm;
		frmNm.action = "../includes/upload.asp"
		frmNm.submit();
	}
	else{
		strErr = "Please check the following\n\n" +	strErr;
		alert(strErr);
		return false;
	}
}

function fnValFldspecial(field) {
	var sFilter = "`~!@#$%^&*()+=|\\'[]{};:\",<.>?/"
	var sTemp;
	var flagOf=true; 
	var iFldCnt = field.length
	for (var i=0; i<iFldCnt; i++) {
		sTemp = "" + field.substring(i, i+1);
		if (sFilter.indexOf(sTemp) != "-1") {
			flagOf = false;
		}
	}	
	return flagOf;
}

function fnFocusMe(pgFrm)	{
	var frmNm = document.frmPost;
	switch (pgFrm) {
		case 'L': frmNm.txtUserName.focus(); break;
		case 'N': frmNm.txtPgHeading.focus(); break;
		case 'P': frmNm.selCat.focus(); break;
		case 'M': frmNm.selMenu.focus(); break;
		case 'R': frmNm.txtRefNo.focus(); break;		
		case 'U': frmNm.txtUsrNm.focus(); break;	
		case 'O': frmNm.txtOldPwd.focus(); break;	
		case 'C': frmNm.txtPrdCode.focus(); break;
		case 'F': frmNm.txtFileNm.focus(); break;
	}
}

function fnPageNo(pNo, pId) {
	var frmNm = document.frmPost;
	frmNm.txtSelPage.value = pNo;
	fnSetPage(pId);
}

function isNumeric(val){return(parseFloat(val,10)==(val*1));}

/* Set Page Routine - this sets the page based on the number provided in the page no. textbox */
function fnSetPage(pgId){
	var pgNo = 0;
	var frmNm = document.frmPost;
	var pgCnt = eval(frmNm.hTotPg.value);
	var ipNo = isNumeric(frmNm.txtSelPage.value);
	if (ipNo == true)	{
		pgNo = eval(frmNm.txtSelPage.value);
	} else {
		pgNo = 0;
	} 

	if (pgNo > pgCnt || pgNo <= 0){
		alert(" - Please specify a page number within the valid range. \n   the page range is from 1 to " + pgCnt );
		frmNm.submit();
		return false;
	}	 else {
		switch (pgId) {
			case 'C': 
				frmNm.action = "contactlist.asp?Pgno=" + pgNo; 
				break;
			case 'U': 
				frmNm.action = "userlist.asp?Pgno=" + pgNo; 
				break;
			case 'V': 
				frmNm.action = "setvariant.asp?Pgno=" + pgNo; 
				break;
			case 'G':
				frmNm.action = "categorylist.asp?Pgno=" + pgNo; 
				break;
			case 'P': 
				frmNm.action = "productlist.asp?Pgno=" + pgNo;
				break;
			case 'O': 
				frmNm.action = "orderstatus.asp?Pgno=" + pgNo; 
				break;
			case 'L': 
				frmNm.action = "vieworders.asp?Pgno=" + pgNo; 
				break;
			case 'S': 
				frmNm.action = "subcategorylist.asp?Pgno=" + pgNo; 
				break;

		}
		frmNm.submit();
		return true;
	}
}

function fnValFld(field) {
/*	var sFilter = "`~!@#$%^&*()+=|\\[]{};:'\",<.>?/1234567890"*/
	var sFilter = "`~!@#$%^&*()+=|\\[]{};:'\",<>?/"
	var sTemp;
	var iFldCnt = field.length
	for (var i=0; i<iFldCnt; i++) {
		sTemp = "" + field.substring(i, i+1);
		if (sFilter.indexOf(sTemp) != "-1") {
			flag=false;
		}
	}
	if (flag==false) {
		strErr=strErr + "- Special characters such as ~ ! @ # , \" < > ^ & * ( ) etc.\n  are not allowed for the field\n\n";
	}
}

function fnValFldOf(field) {
/*	var sFilter = "`~!@#$%^&*()+=|\\[]{};:'\",<.>?/1234567890"*/
	var sFilter = "`~!@#$%^&*()+=|\\[]{};:'\",<>?/"
	var sTemp;
	var iFldCnt = field.length
	for (var i=0; i<iFldCnt; i++) {
		sTemp = "" + field.substring(i, i+1);
		if (sFilter.indexOf(sTemp) != "-1") {
			flagOf = false;
		}
	}
	if (flagOf == false) {
		strErrOf = strErrOf + "- Special characters such as \n   ~ ! @ # , \" < > ^ & * ( ) etc. \n   are not allowed for the field\n\n";
	}
}

function fnValUser(sMd) {
	var frmNm = document.frmPost;
	var sUNm = frmNm.txtUsrNm.value.trim();
	var sULg = frmNm.txtUsrLogin.value.trim();
	var sPwd = frmNm.txtPwd.value.trim();
	var sCPwd = frmNm.txtCPwd.value.trim();
	

	var sAdm = frmNm.chkAdmin.checked;
	var sPro = frmNm.chkProjects.checked;
	var sCon = frmNm.chkContacts.checked;
	var sRep = frmNm.chkReports.checked;
	var sLog = frmNm.chkLogs.checked;

	fnValFld(sUNm);

	if (sUNm=="") {
		flag = false;
		strErr = strErr + "- User Name\n\n";
	}	

	if (sULg=="") {
		flag = false;
		strErr = strErr + "- Login Name\n\n";
	}	

	if (sPwd=="") {
		flag = false;
		strErr = strErr + "- Password\n\n";
	}	

	if (sCPwd=="") {
		flag = false;
		strErr = strErr + "- Confirm Password\n\n";
	}	
	
	if (sPwd!=sCPwd) {
		flag = false;
		strErr = strErr + "- Password and Confirm Password do not match\n\n";
	}	

	if(!sAdm &&  !sPro && !sCon &&  !sRep  && !sLog){
		flag = false;
		strErr = strErr + "- Modules\n\n";
	}

	if (flag==false) {
		var lerr
		lerr = "Please check the following\n\n"
		lerr = lerr + strErr
		alert(lerr);
		strErr = ""
		flag=true
		return false;
	}	
	else {
		frmNm.action = "saveusers.asp?mode=" + sMd;
		frmNm.submit();
	}
}

function fnValPwd() {
	var frmNm = document.frmPost;
	var sOPwd = frmNm.txtOldPwd.value.trim();
	var sPwd = frmNm.txtPwd.value.trim();
	var sCPwd = frmNm.txtCPwd.value.trim();
	
	if (sOPwd=="") {
		flag = false;
		strErr = strErr + "- Old Password\n\n";
	}	

	if (sPwd=="") {
		flag = false;
		strErr = strErr + "- New Password\n\n";
	}	

	if (sCPwd=="") {
		flag = false;
		strErr = strErr + "- Confirm Password\n\n";
	}	
	
	if (sPwd!=sCPwd) {
		flag = false;
		strErr = strErr + "- Password and Confirm Password do not match\n\n";
	}	

	if (flag==false) {
		var lerr
		lerr = "Please check the following \n\n";
		lerr = lerr + strErr;
		alert(lerr);
		strErr = ""
		flag=true
		return false;
	}	
	else {
		frmNm.action = "savepwd.asp";
		frmNm.submit();
	}
}

//validate the form for required entry fields
function fnValLogin() {
	var uname = ""
	var pword = ""
	var frmNm = document.frmPost;

	uname = frmNm.txtUserName.value;
	pword = frmNm.txtPassword.value;

	fnValFld(uname);

	if (uname=="") {
		flag=false;
		strErr=strErr + "- User Name\n\n";
	}
			
	if (pword=="") {	
		flag=false;
		strErr=strErr + "- Password\n\n";
	}	

	if (flag==false) {
		fnFocusMe('L');
		var lerr
		lerr = "Please check the following \n\n";
		lerr = lerr + strErr;
		alert(lerr);
		strErr = ""
		flag=true
		return false;
	}	
	else {
		frmNm.action = "../users/checklogin.asp";
		frmNm.submit();
	}
}

function fnMsgLogin() {
	alert("Please check the following \n\n-  User Name and Password.");
}

function fnDelUser(ID) {     
	var ans = confirm("- Are you sure you want to delete admin user?");
	if (ans) {
		document.frmPost.action = "deladmuser.asp?id="+ID;
		document.frmPost.submit();
	} 
}


/*****************************************************************************************************
	Display/Cosmetic functions
*****************************************************************************************************/
var active = "mnu_0";
var tgId = false;
var dStat = true;
function shMenu(mnuId) {
	tgId = (active == mnuId) ? true:false;
	if (tgId == false) {
		document.getElementById(active).style.display = 'none';
		active = mnuId;
		document.getElementById(active).style.display = 'block';	
		dStat	= false;
	} else {
		 if (dStat == false) {
			document.getElementById(active).style.display = 'none';
		 } else {
			document.getElementById(active).style.display = 'block';	
		 }
		 dStat	= (dStat == true) ? false:true;
	}
}

function chCls(mnHdr,mnuEl) {
	if(document.getElementById) {
		var obj = document.getElementById('leftMenu').getElementsByTagName('li');
		var mHdr = document.getElementById(mnHdr);		
		var mEl = document.getElementById(mnuEl);
		for(i=0; i < obj.length; i++) {obj[i].className = "";}
		mHdr.className = "active";
		if (mEl != null) {mEl.className = "active";}
	}
}


function unblur() {
	this.blur();
}

function blurLinks() {
	window.status = 'Riks Toto CRM!!!';
	return true;
}

function fnStatBar() {
	window.status='Riks Toto CRM!!!'; 
	return true;
}


/*	ZEBRA Tables */
function hasClass(obj) {
	var result = false;
	if (obj.className != null) {
		result = obj.className;
	}
	return result;
}   

function stripe(id) {
	var even = false;
	var evenColor = arguments[1] ? arguments[1] : "#faf7f2";
	var oddColor = arguments[2] ? arguments[2] : "#f7f3eb";
	var table = document.getElementById(id);
	if (! table) { return; }
	var tbodies = table.getElementsByTagName("tbody");
	for (var h = 0; h < tbodies.length; h++) {
		var trs = tbodies[h].getElementsByTagName("tr");
		for (var i = 0; i < trs.length; i++) {
			if (! hasClass(trs[i]) && ! trs[i].style.backgroundColor) {
				var tds = trs[i].getElementsByTagName("td");
				for (var j = 0; j < tds.length; j++) {
					var mytd = tds[j];
					mytd.style.backgroundColor = even ? evenColor : oddColor;
				}
			}
			even =  ! even;
		}
	}
}

function fnCFocus(obj) {
	obj.style.backgroundColor = '#ffffff';
	obj.style.borderColor = '#e2e2d3';
	obj.style.color = '#ea0d22';
}

function fnCBlur(obj) {
	obj.style.backgroundColor = '#faf9f2';
	obj.style.borderColor = '#e2e2d3';
	obj.style.color = '#000000';
}


/*Routine to toggle the main and mail forms.*/
function shForm(frmId) {
	var dId = document.getElementById(frmId).style;

	if (dId.visibility == "visible") {
		dId.visibility = "hidden";
	} else {
		dId.visibility = "visible";
	}
}

/*Toggle Layer Visibility © Eddie Traversa (http://dhtmlnirvana.com/) */
function toggleVisibility(id, visMode) {
	if (document.getElementById) {
		eval("document.getElementById(id).style.visibility = \"" + visMode + "\"");
	} else {
	if (document.layers) {
		document.layers[id].visibility = visMode;
	} else {
	if (document.all) {
		eval("document.all." + id + ".style.visibility = \"" + visMode + "\"");
} } } }

/*Trim function*/
String.prototype.trim = function(){
	return this.replace(/(^\s*)|(\s*$)/g, "");
}

// function to check valid phone no
function isPhone(objValue) {	
	var characters="-+0123456789() "
	var tmp
	var lTag
	lTag = 0
	temp = (objValue.length)
	for (var i=0;i<temp;i++) {
	tmp=objValue.substring(i,i+1)
		if (characters.indexOf(tmp)==-1) {
			lTag = 1
		}
	}
	if(lTag == 1)
	return false
	else
	return true
}

function isDigit(num) {
	if (num.length>1){return false;}
	var string="1234567890";
	if (string.indexOf(num)!=-1){return true;}
	return false;
	}

function isWhitespace(str) {
	var i;
	var flag
	if (isEmpty(str)) return true;		
	for (i = 0; i < str.length; i++) {   
		var c = str.charAt(i);
		if (whitespace.indexOf(c) == -1)
		return false
	}	
		return true;
}

function isEmpty(str) {  
	return ((str == null) || (str.length == 0));
}

function IsEmail(InString) {
	var left, right;
	if(InString.length==0) return(false);
	for(Count=0;Count<InString.length;Count++) {
		TempChar = InString.substring(Count,Count + 1);
		if("1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.@_-".indexOf(TempChar,0)==-1) return(false); 
	}
	if(InString.indexOf('@')< 1) return(false);
	if(InString.lastIndexOf('@')!= InString.indexOf('@')) return(false);
	left = InString.substring(0,InString.indexOf('@'));
	right = InString.substring(InString.indexOf('@') + 1,InString.length);
	if((!isDotExpression(left,0))||(!isDotExpression(right,1))) return(false);
	return(true);
}

function isDotExpression(InString,NeedsDot) {
	var dots,index,tmpNeedDot;
	dots=0;
	for(index=0;index<InString.length;index++) {
		if(InString.substring(index,index+1)==".") {
		if((index==0)||(index==InString.length-1)) return(false);
			dots ++;
			if(dots>1)tmpNeedDot=1;
			else tmpNeedDot=0;
			if(!isDotExpression(InString.substring(0,index),tmpNeedDot)) return(false);	
		}      
	}
	if((NeedsDot==1)&&(dots<1)) return (false);
	if(InString.length < dots * 2+1) return (false);
	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 preload(imgObj,imgSrc) {
		if (document.images) {
			eval(imgObj+' = new Image()')
			eval(imgObj+'.src = "'+imgSrc+'"')
		}
	}

	function changeImage(layer,imgName,imgObj) {
		if (document.images) {
			if (document.layers && layer!=null) eval('document.'+layer+'.document.images["'+imgName+'"].src = '+imgObj+'.src')
			else document.images[imgName].src = eval(imgObj+".src")
		}
	}


	function Radio(layer,imgNames,length,defaultValue) {
		this.layer = layer
		this.imgNames = imgNames
		this.length = length
		this.change = RadioChange
		this.value = (defaultValue)? defaultValue : "undefined"
	}


	function RadioChange(index,value) {
		this.value = value
		for (var i=0; i<this.length; i++) changeImage(this.layer,this.imgNames+i,'Most0')
		changeImage(this.layer,this.imgNames+index,'Most1')
		//fnshow	('account');
	}

	preload('Most0','../cast/Most0.gif')
	preload('Most1','../cast/Most1.gif')

function fnToPage(pgNm)	{
	document.frmPost.method = "post"; 
	document.frmPost.action = pgNm; 
	document.frmPost.submit();
}

