var ctrlDown = false;
var shiftDown = false;
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

/*function PrintPreview(){

     if(document.all)
    {
        WebBrowser1.ExecWB(7, 1) //use 6, 1 to prompt the print dialog or 6, 6 to omit it; 
        //WebBrowser1.outerHTML = "";
    }
    else
    {
        window.print();
    }
 
}*/
function printPreview()
{
	var OLECMDID = 7;
	/* OLECMDID values:
	* 6 - print
	* 7 - print preview
	* 1 - open window
	* 4 - Save As
	*/
	var PROMPT = 1; // 2 DONTPROMPTUSER 
	var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
	document.body.insertAdjacentHTML('beforeEnd', WebBrowser); 
	WebBrowser1.ExecWB(OLECMDID, PROMPT);
	WebBrowser1.outerHTML = "";
}


function Print()
{
    if(document.all)
    {
        WebBrowser1.ExecWB(6, 1) //use 6, 1 to prompt the print dialog or 6, 6 to omit it; 
                //WebBrowser1.outerHTML = "";
    }
    else
    {
        window.print();
    }
}

function emailValidator(elem, helperMsg){
    var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
   
    if(elem.value.match(emailExp))
    {
        return true;
    }
    else
    {
        alert(helperMsg);
        elem.focus();    
        return false;
    }
}

var firstItemInRange = 0;//Holds ID of first item clicked on the list
var firstObjClassName = '';//Holds className of first item clicked on the list; 
//This will decide whether the range will be selected or deselected.

//This is applicable on the list to perform slection of code operations
function toggleClass(obj, class1, class2) {
	if (ctrlDown) {
		if(obj.className == class1) {
			obj.className = class2;
		}
		else {
			obj.className = class1;
		}
		maintainSelectedCodeIds(obj.id.substr(4), obj.className);
	}
	if (shiftDown) {
		if (firstItemInRange == 0) {
			firstItemInRange = obj.id;
			if(obj.className == class1) {
				obj.className = class2;
			}
			else {
				obj.className = class1;
			}
			firstObjClassName = obj.className;
			maintainSelectedCodeIds(obj.id.substr(4), obj.className);
		}
		else {
			removeSelectionOfCodes();
			var lastItemInRange = obj.id;
			var intFirstObectIntegerPart = new Number(firstItemInRange.substr(4));
			var intLastObectIntegerPart = new Number(lastItemInRange.substr(4));
			var i = 0, j = 0;
			if(intFirstObectIntegerPart < intLastObectIntegerPart) {
				i = intFirstObectIntegerPart;
				j = intLastObectIntegerPart;
			}
			else {
				i = intLastObectIntegerPart;
				j = intFirstObectIntegerPart;
			}
			for(; i <= j; i++) {
				var tmpObj = document.getElementById('code' + i);
				tmpObj.className = firstObjClassName;
				maintainSelectedCodeIds(tmpObj.id.substr(4), tmpObj.className);
			}
//			firstItemInRange = 0;
//			firstObjClassName = '';
		}
	}
	if(!ctrlDown && !shiftDown) {
		removeSelectionOfCodes();
		if(obj.className == class1) {
			obj.className = class2;
		}
		else {
			obj.className = class1;
		}
		firstItemInRange = obj.id;
		firstObjClassName = obj.className;
		maintainSelectedCodeIds(obj.id.substr(4), obj.className);		
	}
}

//Open Standard window
function openWindow(theURL,winName,features) { 
	if(features == '') {
		features = 'status=yes,scrollbars=yes,resizable=yes,width=600,height=400';
	}
	else {
		features = 'status=yes,scrollbars=yes,resizable=yes,width=600,height=400,' + features;
	}
	// alert(theURL);
  	window.open(theURL,winName,features);
}
//To Open Print WIndow
function openPrintWindow(theURL,winName,features) {
		theURL += '~selectedcodeids='+document.getElementById('selectedcodeids').value;
		openWindow(theURL,winName,features);
}
//To Open a Modal window

function openModalWindow(theURL,winName,features) {
	if(features == '') {
//		features = 'dialogWidth:800px;dialogHeight:600px';
		features = 'status=yes,scrollbars=yes,resizable=yes,width:600;height:400';
	}
	else {
//		features = 'status=yes,scrollbars=yes,resizable=yes,dialogWidth:800px;dialogHeight:600px,' + features;
//		features = 'status=yes,scrollbars=yes,resizable=yes,dialogWidth:800px;dialogHeight:600px,' + features;
	}
	if (window.showModalDialog) {
//		window.showModalDialog(theURL, winName, features);
		window.open(theURL, winName, features); 
	} 
	else {
		features = 'status=yes,scrollbars=yes,resizable=yes,width:600;height:400px';
		window.open(theURL, winName, features); 
	}
} 
//check whether code is selected
function isCodeSelected() {
	var obj = document.getElementById('selectedcodeids');
	return (obj.value.length > 0);
}

//To open print dialogs
function openPrintChoicePopup(theURL,winName,features) {
	if (!isCodeSelected()) {
//		alert('Please select at least one code to print');
		sm('nosel',200,120);
		return false;
	}
	else {
		theURL += '~selectedcodes='+document.getElementById('selectedcodeids').value;
		openModalWindow(theURL,winName,features);
	}
}

// Function to open the Export to CSV dialog.
// If no codes are selected the all codes will be taken for the exporting.
function openExportToCSVPopup() {
	if (!isCodeSelected()) {
		theURL += '~selectedcodes=';
	}
	else {
		theURL += '~selectedcodes='+document.getElementById('selectedcodeids').value;
		// openModalWindow(theURL,winName,features);
	}
	// return theURL;
}


function download(obj, url) {

	obj.href = url + '~selectedcodes='+document.getElementById('selectedcodeids').value;
}


//To Maintain selected codeids
function maintainSelectedCodeIds(serial, className) {
	var obj = document.getElementById('selectedcodeids');
	var selectedIds = ',' + obj.value + ',';
	var theid = 'codeids' + serial;
	var codeObj = MM_findObj(theid);
	var codeid = codeObj.value;
	if(className == '' && obj.value.length > 0 && selectedIds.indexOf(',' + codeid + ',') != -1) {
		selectedIds = selectedIds.replace(',' + codeid + ',', ',');
		//Disabling buttons and text field
		document.getElementById('print' + serial).disabled = true;
		document.getElementById('email' + serial).disabled = true;
		document.getElementById('send' + serial).disabled = true;
	}
	else if(className != '' && selectedIds.indexOf(',' + codeid + ',') == -1) {
		 if(obj.value.length > 0 ) {
			 selectedIds += codeid + ',';
		 }
		 else {
			 selectedIds = ',' + codeid + ',';
		 }
		//Enabling buttons and text field
		document.getElementById('print' + serial).disabled = false;
		document.getElementById('email' + serial).disabled = false;
		document.getElementById('send' + serial).disabled = false;		 
	}
	obj.value = selectedIds.substr(1, selectedIds.length - 2);
}
//Set suffix to identify btn clicked
function setSuffix(suffix) {
	var obj = document.getElementById('suffix');
	obj.value = suffix;
}
//To set hidden field values from parent window to current window
//This will set currently selected codes
function setSelectedCode() {
	alert(window.parent.document.getElementById('selectedcodeids').value);
//	document.printChoiceForm.selectedcodeids.value = window.parent.document.frmCodeList.selectedcodeids.value;
}
function markKeyDown(e){
	var unicode=e.keyCode? e.keyCode : e.charCode
	if(unicode == 17) {
		ctrlDown = true;
	}
	if(unicode == 16) {
		shiftDown = true;
	}
}
function unmarkKeyDown(e){
	var unicode=e.keyCode? e.keyCode : e.charCode
	if(unicode == 17) {
		ctrlDown = false;
	}
	if(unicode == 16) {
		shiftDown = false;
//		firstItemInRange = 0;//Holds ID of first item clicked on the list
//		firstObjClassName = '';//Holds className of first item clicked on the list; 
	}
}
function getObject(obj) {
  var theObj;
  if(document.all) {
    if(typeof obj=="string") {
      return document.all(obj);
    } else {
      return obj.style;
    }
  }
  if(document.getElementById) {
    if(typeof obj=="string") {
      return document.getElementById(obj);
    } else {
      return obj.style;
    }
  }
  return null;
}

function disableSelection(target){
	if (typeof target.onselectstart!="undefined") //IE route
		target.onselectstart=function(){return false}
	else if (typeof target.style.MozUserSelect!="undefined") //Firefox route
		target.style.MozUserSelect="none"
	else //All other route (ie: Opera)
		target.onmousedown=function(){return false}
	target.style.cursor = "default"
}
function removeSelectionOfCodes() {
	document.getElementById('selectedcodeids').value = '';
	for(i=1; i > 0; i++) {
		var obj = document.getElementById('code' + i);
		if (obj!=null) {
			obj.className = '';
			//Disabling buttons and text field
			document.getElementById('print' + i).disabled = true;
			document.getElementById('email' + i).disabled = true;
			document.getElementById('send' + i).disabled = true;
			continue;
		}
		break;
	}
}

// Function to refresh the parent window
function refreshParent(){
    window.opener.document.location.reload();
}
//////////////////////////
var arVersion = navigator.appVersion.split("MSIE")
var version = parseFloat(arVersion[1])

function fixPNG(myImage) 
{
    if ((version >= 5.5) && (version < 7) && (document.body.filters)) 
    {
       var imgID = (myImage.id) ? "id='" + myImage.id + "' " : ""
	   var imgClass = (myImage.className) ? "class='" + myImage.className + "' " : ""
	   var imgTitle = (myImage.title) ? 
		             "title='" + myImage.title  + "' " : "title='" + myImage.alt + "' "
	   var imgStyle = "display:inline-block;" + myImage.style.cssText
	   var strNewHTML = "<span " + imgID + imgClass + imgTitle
                  + " style=\"" + "width:" + myImage.width 
                  + "px; height:" + myImage.height 
                  + "px;" + imgStyle + ";"
                  + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
                  + "(src=\'" + myImage.src + "\', sizingMethod='scale');\"></span>"
	   myImage.outerHTML = strNewHTML	  
    }
}
