/*
   Provide the XMLHttpRequest constructor for Internet Explorer 5.x-6.x:
   Other browsers (including Internet Explorer 7.x-9.x) do not redefine
   XMLHttpRequest if it already exists.
 
   This example is based on findings at:
   http://blogs.msdn.com/xmlteam/archive/2006/10/23/using-the-right-version-of-msxml-in-internet-explorer.aspx
*/
if (typeof XMLHttpRequest == "undefined")
  XMLHttpRequest = function () {
	try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); }
	  catch (e) {}
	try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); }
	  catch (e) {}
	try { return new ActiveXObject("Microsoft.XMLHTTP"); }
	  catch (e) {}
	//Microsoft.XMLHTTP points to Msxml2.XMLHTTP and is redundant
	throw new Error("This browser does not support XMLHttpRequest.");
  };

//Fix IE 6 background image flickering bug
try {
  document.execCommand("BackgroundImageCache", false, true);
} catch(err) {}

function externalLinks() { 
 if (!document.getElementsByTagName) return; 
 var anchors = document.getElementsByTagName("a"); 
 for (var i=0; i<anchors.length; i++) { 
   var anchor = anchors[i]; 
   if (anchor.getAttribute("href") && 
       (anchor.getAttribute("rel") == "external" || anchor.getAttribute("rel") == "external nofollow")) 
     anchor.target = "_blank"; 
 } 
} 
window.onload = externalLinks;

function postBack(thisForm) {
	document.forms[thisForm].submit();
}

//Functions for sponsor placement ordering

// -------------------------------------------------------------------
// hasOptions(obj)
//  Utility function to determine if a select object has an options array
// -------------------------------------------------------------------
function hasOptions(obj) {
	if (obj!=null && obj.options!=null) { return true; }
	return false;
	}

// -------------------------------------------------------------------
// swapOptions(select_object,option1,option2)
//  Swap positions of two options in a select list
// -------------------------------------------------------------------
function swapOptions(obj,i,j) {
	var o = obj.options;
	var i_selected = o[i].selected;
	var j_selected = o[j].selected;
	var temp = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);
	var temp2= new Option(o[j].text, o[j].value, o[j].defaultSelected, o[j].selected);
	o[i] = temp2;
	o[j] = temp;
	o[i].selected = j_selected;
	o[j].selected = i_selected;
	}

// -------------------------------------------------------------------
// moveOptionUp(select_object)
//  Move selected option in a select list up one
// -------------------------------------------------------------------
function moveOptionUp(obj) {
	if (!hasOptions(obj)) { return; }
	for (i=0; i<obj.options.length; i++) {
		if (obj.options[i].selected) {
			if (i != 0 && !obj.options[i-1].selected) {
				swapOptions(obj,i,i-1);
				obj.options[i-1].selected = true;
			}
		}
	}
}

// -------------------------------------------------------------------
// moveOptionDown(select_object)
//  Move selected option in a select list down one
// -------------------------------------------------------------------
function moveOptionDown(obj) {
	
	if (!hasOptions(obj)) { return; }
	for (i=obj.options.length-1; i>=0; i--) {
		if (obj.options[i].selected) {
			if (i != (obj.options.length-1) && ! obj.options[i+1].selected) {
				swapOptions(obj,i,i+1);
				obj.options[i+1].selected = true;
			}
		}
	}
}

function checkAll(obj) {

	if (!hasOptions(obj)) { return; }

	for (i=obj.options.length-1; i>=0; i--)
		obj.options[i].selected = true;
}

//Functions for dealing with checkboxes

function checkAllBoxes(box, element) {

	var checked = box.checked;
	var boxes = document.getElementsByName(element);
	for (i=0; i < boxes.length; i++) 
	  boxes[i].checked = checked;
}

function checkHeader(box, element, headerBox) {

	if(!box.checked)
		headerBox.checked = false;
	else {

		if(allChecked(element))
			headerBox.checked = true;
	
	}
}

function allChecked(element) {
	
	var boxes = document.getElementsByName(element);
	for (i=0; i < boxes.length; i++) { 
	  if(!boxes[i].checked)
		  return false;
	}
	return true;
}

function linkButton(thisForm,filterElement,filters) {

	try {
        var element = document.createElement('<input name=\'' + filterElement + '\' />');
    } catch(e) {
        var element = document.createElement('input');
        element.name = filterElement;
    }

    element.type = 'hidden';
    element.value = filterElement;
    document.forms[thisForm].appendChild(element);

	for(var i=0; i<filters.length; i=i+2) {
		
		var filterName = filters[i];
		var filterValue = filters[i+1];
		
		try {
			var element = document.createElement('<input name=\'' + filterName + '\' />');
		} catch(e) {
			var element = document.createElement('input');
			element.name = filterName;
		}

		element.type = 'hidden';
		element.value = filterValue;
		document.forms[thisForm].appendChild(element);
	}

	//document.forms[thisForm].test.value = filter;
	document.forms[thisForm].submit();
}

/*function linkButton(thisForm,filterElement,filterName,filterValue) {

	try {
        var element = document.createElement('<input name=\'' + filterElement + '\' />');
    } catch(e) {
        var element = document.createElement('input');
        element.name = filterElement;
    }

    element.type = 'hidden';
    element.value = filterName;
    document.forms[thisForm].appendChild(element);

	try {
        var element = document.createElement('<input name=\'' + filterName + '\' />');
    } catch(e) {
        var element = document.createElement('input');
        element.name = filterName;
    }

    element.type = 'hidden';
    element.value = filterValue;
    document.forms[thisForm].appendChild(element);

	//document.forms[thisForm].test.value = filter;
	document.forms[thisForm].submit();
}*/

function changeFormActionURL(thisForm,url) {

	document.forms[thisForm].action = url;
}

function confirmDelete(section) {
	
	var del = confirm('Are you sure you want to delete?'); 
	if(del) 
		changeFormActionURL('item','?section=' + section);
	
	return del;
}

function showCoupon(id,coupon,url) {

	var ele = document.getElementById(id);
	if(ele.title == "hide") {

		ele.title = "show";
		ele.innerHTML = coupon;
		window.open(url);

		xmlhttp = new XMLHttpRequest();
		xmlhttp.open("POST","/ajax/addCouponToSession.php",true);
		xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
		xmlhttp.send("elementID=" + id);
  	}
}

function addVote(id,success,couponID,successText) {

	xmlhttp = new XMLHttpRequest();
	xmlhttp.open("POST","/ajax/addCouponVote.php",true);
	xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
	xmlhttp.send("success[" + couponID + "]=" + success);

	xmlhttp.onreadystatechange=function()
	  {
		if (xmlhttp.readyState==4 && xmlhttp.status==200) {

			document.getElementById("succesAttribute" + couponID).innerHTML = xmlhttp.responseText + "%";
			document.getElementById(id).innerHTML= "<span class='successRate'>" + xmlhttp.responseText + "% " + successText + "</span>";
		}
	  }
} 

function updateRating(ratingID,itemID,type,name,message) {

	var value = 0;
	var rating = document.getElementsByName(name);
	for(i = 0; i < rating.length; i++){

		if(rating[i].checked) {

			value = rating[i].value;
			break;
		}
	}

	xmlhttp = new XMLHttpRequest();
	xmlhttp.open("POST","/ajax/updateRating.php",true);
	xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
	xmlhttp.send("ratingID=" + ratingID + "&itemID=" + itemID + "&type=" + type + "&rating=" + value);

	xmlhttp.onreadystatechange=function()
	  {
		if (xmlhttp.readyState==4 && xmlhttp.status==200) {

			//alert(xmlhttp.responseText);
			document.getElementById("ratingAttribute" + itemID).innerHTML = xmlhttp.responseText;
			document.getElementById('ratingMessage' + itemID).innerHTML= message;
		}
	  }
}




