/*
	weiliao
	1/24/2006
	this js file will handle adding item and removing item for the assessment builder
	currently it's used in index.aspx, cart.aspx
*/


function addRemoveItem(field, _mainCookie, _childCookie, _itemID, _mainContentID){
	//alert(field.length);
	//_mainContentID is for adding child item
	if (isChecked(field)){
		//add item
		if (_mainContentID.length > 0){
			//add main item
			addItem(_mainCookie, _mainContentID);
			//then add child item
			addItem(_childCookie, _itemID);
		}else{
			//just add the main item
			addItem(_mainCookie, _itemID);
		}
		//var _oldVal = document.getElementById("itemCount").innerText;
		//increase count by 1
		//_oldVal = parseInt(_oldVal) + 1;
		//document.getElementById("itemCount").innerText = parseInt(document.getElementById("itemCount").innerText) + 1;//_oldVal;
	}else{
		if (_mainContentID.length > 0){
			//remove child item
			removeItem(_childCookie, _itemID);
		}else{
			//remove main item
			removeItem(_mainCookie, _itemID);
		}
	}
	calcItemCount(_mainCookie);
}


/********************************************************************************
//retrieve the cookie value(comma delimited) and count the item, then display the
//result on 2 span IDs.
*********************************************************************************/
function calcItemCount(_name){
	var _value = getCookie(_name);
	var _number = 0;
	
	//remove the last comma
	if (_value != undefined && _value.length > 0){
		var _newValue = _value.substring(0, _value.length-1);
		//alert(_value+"/"+_newValue);
		var _array = _newValue.split(',');
		//document.getElementById("itemCount").innerHTML = _array.length;
		_number = _array.length;
	}
	
	//display
	document.getElementById("itemCount").innerHTML = "You currently have <a href=cart.aspx><font color=white>" + _number + "</font></a> item(s)";
	document.getElementById("itemCount").innerHTML += " <a href=\"javascript:void(0);\" onclick=\"resetCookie('cartItemCookie', 'cartItemChildCookie', true);\"><font color=white><b>Clear Item(s)</b></font></a>";
	
	document.getElementById("itemCountTop").innerHTML = "You currently have <a href=cart.aspx><font color=#183366>" + _number + "</font></a> item(s)";
	document.getElementById("itemCountTop").innerHTML += " <a href=\"javascript:void(0);\" onclick=\"resetCookie('cartItemCookie', 'cartItemChildCookie', true);\"><font color=#183366><b>Clear Item(s)</font></b></a>";
	
}

function isChecked(field){
	if (field.checked){
		return true;
	}else{
		return false;
	}
}


/********************************************************************************
//add assessment item
*********************************************************************************/
function addItem(_name, _itemID){
	if (!idFoundInCookie(_name, _itemID)){
		//add the item to cookie
		var _str = getCookie(_name);
		_str = (_str == null) ? _itemID+',' : _str + _itemID + ',';
		setCookie(_name, _str, 1);
		//alert("removed: "+_str+"/cookie now: "+getCookie(_name));			
	}
}


/********************************************************************************
//check all PI on the page
*********************************************************************************/
function checkUncheckAllPI_box(field, chkName){
	if (isChecked(field)){
		checkUncheckAllPI(true, chkName);
	}else{
		checkUncheckAllPI(false, chkName);
	}
}
function checkUncheckAllPI(val, chkName) {	
	var _str;
	dml=document.frmnylearns;
	len = dml.elements.length;
	var i=0;
	for( i=0 ; i<len ; i++) {
		if (dml.elements[i].name.indexOf(chkName) > 0) {
			dml.elements[i].checked=val;
		}
	}
}

/********************************************************************************
//check all assessment item on the page
*********************************************************************************/
function checkUncheckAll_box(field, chkName){
	if (isChecked(field)){
		checkUncheckAll(true, chkName);
	}else{
		checkUncheckAll(false, chkName);
	}
}
function checkUncheckAll(val, chkName) {
	//alert(field);
	/*
	var val=true;	
	if (!isChecked(field)){
		val = false;
		alert('unchecked');
	}
	*/
	
	var _str;
	dml=document.frmnylearns;
	len = dml.elements.length;
	var i=0;
	for( i=0 ; i<len ; i++) {
		if (dml.elements[i].name.indexOf(chkName) > 0) {
			dml.elements[i].checked=val;
			_str += dml.elements[i].name + ': '+dml.elements[i].value+'\n';
			if (val)
				addItem('cartItemCookie', dml.elements[i].value);
			else
				removeItem('cartItemCookie', dml.elements[i].value);
		}
		
		//child
		if (dml.elements[i].name.indexOf('cbWeiChild') > 0) {
			dml.elements[i].checked=val;
			_str += dml.elements[i].name + ': '+dml.elements[i].value+'\n';
			if (val)
				addItem('cartItemChildCookie', dml.elements[i].value);
			else
				removeItem('cartItemChildCookie', dml.elements[i].value);
		}
		
		/*
		if (dml.elements[i].name.indexOf('lblMainContentID') > 0){
			_str += dml.elements[i].name + ': '+dml.elements[i].innerText+'\n';
		}
		*/
	}
	calcItemCount('cartItemCookie');
	
	//alert('_str: '+_str);
}

/********************************************************************************
//remove assessment item
*********************************************************************************/
function removeItem(_name, _itemID){
	var _str = getCookie(_name);
	if (idFoundInCookie(_name, _itemID)){
		//remove item then
		_str = _str.replace(_itemID+',', '');
		setCookie(_name, _str, 1);
		//alert("removed: "+_str+"/cookie now: "+getCookie(_name));		
	}else{
		//alert("didnt find id: "+_str);		
	}
}

function replaceAll( str, replacements ) {
    for ( i = 0; i < replacements.length; i++ ) {
        var idx = str.indexOf( replacements[i][0] );

        while ( idx > -1 ) {
            str = str.replace( replacements[i][0], replacements[i][1] );
            idx = str.indexOf( replacements[i][0] );
        }

    }

    return str;
}

/********************************************************************************
//check if the item id's in cookie
*********************************************************************************/
function idFoundInCookie(_name, _itemID){
	var value = getCookie(_name);
	if (value != null && value.length > 0){
		//alert(value.search(_itemID));
		if (value.indexOf(_itemID) > -1){
			//found item id
			//alert('found '+_itemID);
			return true;
		}//else
			//alert('shit, didnt find' + _itemID);
	}else{
		//alert('shit, value is null');
		setCookie(_name, "", 1);
	}
	
	return false;
}


/********************************************************************************
//get cookie's value
*********************************************************************************/
 function getCookie(_name) {
    var dc = document.cookie;
    var prefix = _name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1) {
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
    } else {
        begin += 2;
    }
    var end = document.cookie.indexOf(";", begin);
    if (end == -1) {
        end = dc.length;
    }
    return unescape(dc.substring(begin + prefix.length, end));
}


/********************************************************************************
//check if the cookie's set
*********************************************************************************/
function checkCookie(_name) {
	var lf = "\n";
	var CookieName=_name
	var CookieString = document.cookie;
	var CookieSet = CookieString.split (';');
	var SetSize = CookieSet.length;
	var CookiePieces
	var ReturnValue = "";
	var x = 0;
	for (x = 0; ((x < SetSize) && (ReturnValue == "")); x++) {
		CookiePieces = CookieSet[x].split ('=');
		if (CookiePieces[0].substring (0,1) == ' ') {
			CookiePieces[0] = CookiePieces[0].substring (1, CookiePieces[0].length);
		}
		if (CookiePieces[0] == CookieName) {
			ReturnValue = CookiePieces[1];
		}
	}
	if(ReturnValue=="")
		false;
	else {
		true;
	}
}

/********************************************************************************
//set cookie
*********************************************************************************/
function setCookie(_cookieName, _cookieValue, _nDays) {
	var today = new Date();
	var expire = new Date();
	if (_nDays==null || _nDays==0) _nDays=1;
		
	expire.setTime(today.getTime() + 3600000*24*_nDays); 
	
	document.cookie = _cookieName+"="+_cookieValue
                 + ";path=/;expires="+expire.toGMTString();
}


/********************************************************************************
//reset cookie
*********************************************************************************/
function resetCookie(_cookieName, _cookieChildName, _doItemCount) {
	if (confirm('Are you sure you want to remove all items?')){
		setCookie(_cookieName, "", -1);
		setCookie(_cookieChildName, "", -1);
		
		//reset count
		//document.getElementById("itemCount").innerHTML = "0";
		if (_doItemCount)
			calcItemCount(_cookieName);
		else
			location.reload();
	}
}

/********************************************************************************
//show and hide the PI div
*********************************************************************************/
function hideDiv() {
	setCookie('hideShow', '0', 1);
	
	if (document.getElementById){ // DOM3 = IE5, NS6
		document.getElementById('pi').style.visibility = 'hidden';
        document.getElementById('pi').style.display = "none";
	}
	else if (document.layers) { // Netscape 4
		document.pi.visibility = 'hidden';
		document.pi.display = "none";
	}
	else { // IE 4
		document.all.pi.style.visibility = 'hidden';
		document.all.pi.style.display = "none";
	}
}//end hideDiv

function showDiv() {
	setCookie('hideShow', '1', 1);
	
	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById('pi').style.visibility = 'visible';
        document.getElementById('pi').style.display = "block";
	}
	else if (document.layers) { // Netscape 4
		document.pi.visibility = 'visible';
		document.pi.display = "block";
	}
	else { // IE 4
		document.all.pi.style.visibility = 'visible';
		document.all.pi.style.display = "block";
	}
}//end showDiv


/********************************************************************************
//view & print
*********************************************************************************/
function viewPrint(ver){
	var url = "_rawhtml.aspx?ver=" + ver + "&ff=nyl";
	url += "&id=" + getCookie('cartItemCookie') + "&cid=" + getCookie('cartItemChildCookie');
	openWin(url, 'ViewPrint', 'width=700,height=500,left=100,top=100,screenX=75,screenY=50,location=no, status=no,menubar=yes,toolbar=no,resizable=yes,scrollbars=yes');
	return false;
}