// msslovi0 2007-01-29
/*
    Written by Jonathan Snook, http://www.snook.ca/jonathan
*/

function getElementsByClassName(node, classname)
{
    var a = [];
    var re = new RegExp('\\b' + classname + '\\b');
    var els = node.getElementsByTagName("*");
    for(var i=0,j=els.length; i<j; i++) {
        if(re.test(els[i].className)) {
		a.push(els[i]);
    		//if(els[i].className=="jsNone") {
    		//	jscss('swap', els[i], 'jsNone', 'jsBlock');
		//}
	}
    }
    return a;
}

// msslovi0 2007-01-27
function googleMapsInit() {
	if(document.getElementById && document.getElementsByTagName){ // DOM available?
		if(document.getElementById('GoogleMaps')) {
			var mrkrs = "35.7,140.716666666667||52.8666666666667,-9.18333333333333||35.0113888888889,-85.8052777777778||31.3680555555556,-103.536666666667||49.4580555555556,13.7877777777778||51.05,9.1833||46.1527777777778,-116.390555555556||50.8666666666667,0.616666666666667||33.1813888888889,-90.4855555555555||43.049,-75.973||48.0222222222222,12.1747222222222||47.45,7.6||53.0333333333333,6.66666666666667||46.6477777777778,6.71472222222222||45.6833333333333,9.71666666666667||39.7769444444444,-85.8544444444444||47.4783333333333,-122.275555555556||16.4330555555556,103.511388888889||54.3666666666667,12.5833333333333||41.4397222222222,-90.4558333333333||50.5833,7.65||46.1666666666667,8.61666666666667||51.8833333333333,5.25||49.3138888888889,10.5527777777778||48.3597222222222,13.2027777777778||36.73,-120.06||40.100266,-123.793858888889||48.3397222222222,14.4255555555556||40.2833333333333,8.83333333333333||-32.4833333333333,24.0666666666667||26.9119444444444,-82.325||13.1666666666667,-0.816666666666667||53.1,4.76638888888889||47.95,12.1833333333333||18.2533333333333,109.503611111111||35.1925,-78.6486111111111||47.0191666666667,5.11805555555556||37.5205555555556,-77.3783333333333||27.989,45.534||42.8666666666667,-112.45||52.8666667,12.4333333||47.2197222222222,7.58611111111111||39.6955555555556,-84.2277777777778||29.7866666666667,-95.1222222222222||39.1927777777778,-93.6894444444444||47.8166666666667,16.2666666666667||46.9286111111111,15.2588888888889||48.2405555555556,15.3358333333333||40.3833333333333,17.35||40.5786111111111,-95.0297222222222||50.2930361111111,7.71792777777778||48.2333333333333,10.7833333333333||34.445,-92.1827777777778||41.522,-115.974||44.1666666666667,8.35||59.2172222222222,6.34083333333333||50.3047222222222,11.2836111111111||42.95,-7.98333333333333||-35.0666666666667,138.85||50.7422222222222,8.20388888888889||45.6333333333333,9.41666666666667||46.3663888888889,8.94388888888889||33.8469444444444,-89.4125||40.1338888888889,-86.22||40.7708333333333,-84.6172222222222||42.2852777777778,-77.2188888888889||43.2166666666667,-3.43333333333333||40.4833333333333,16.25||-4.8825,29.6536111111111||46.8655555555556,7.31416666666667||38.7886111111111,-77.1794444444444||52.15,4.85||50.9836111111111,7.28583333333333||44.8166666666667,7.63333333333333||49.6447222222222,17.0183333333333";
			loadGoogleMap(mrkrs);
		}
	}
}
// msslovi0 2007-01-10
function popupInit() {
	if(document.getElementById && document.getElementsByTagName){ // DOM available?
		popup = new PopUp();
		popup.addType({
			name: "pdf",
			width: 800,
			height: 900,
			location:true,
			title:"This PDF Document opens in a new window"
		});
		popup.addType({
			name: "vds",
			width: 388,
			height: 568,
			center: true,
			resizable:false
		});
		popup.addType({
			name: "doc",
			width: 100,
			height: 100,
			resizable:true,
			title:"This Word Document opens in a new window"
		});
		popup.addType({
			name: "extern",
			width: 1000,
			height: 600,
			scrollbars:true,
			center:false,
			location:true,
			resizable:true,
			status:true,
			title:"This link points to another domain and opens in a new window"
		});
		popup.addType({
			name: "order",
			width: 595,
			height: 842,
			scrollbars:true,
			center:false,
			title:"This Order opens in a new window"
		});
		popup.addType({
			name: "info",
			width: 300,
			height: 300,
			top: 300,
			status:true
		});
		popup.apply();
	}
}

// msslovi0 2007-01-10
// get Elements with class jsHide and jsNone and display them
// taken from http://ichwill.net/cssjsseparation.html, thanks
function jscss(a,o,c1,c2)
{
  switch (a){
    case 'swap':
      o.className=!jscss('check',o,c1)?o.className.replace(c2,c1): o.className.replace(c1,c2);
    break;
    case 'add':
      if(!jscss('check',o,c1)){o.className+=o.className?' '+c1:c1;}
    break;
    case 'remove':
      var rep=o.className.match(' '+c1)?' '+c1:c1;
      o.className=o.className.replace(rep,'');
    break;
    case 'check':
      return new RegExp('\\b'+c1+'\\b').test(o.className)
    break;
  }
}

// taken from http://ichwill.net/chapter4.html
function addEvent(obj, evType, fn){ 
 if (obj.addEventListener){ 
   obj.addEventListener(evType, fn, false); 
   return true; 
 } else if (obj.attachEvent){ 
   var r = obj.attachEvent("on"+evType, fn); 
   return r; 
 } else { 
   return false; 
 } 
}

// end msslovi0

var selected;
var submitter = null;

function submitFunction() {
    submitter = 1;
}
function popupWindow(url) {
  window.open(url,'popupWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,width=100,height=100,screenX=150,screenY=150,top=150,left=150');
}  

function selectRowEffect(object, buttonSelect) {
  if (!selected) {
    if (document.getElementById) {
      selected = document.getElementById('defaultSelected');
    } else {
      selected = document.all['defaultSelected'];
    }
  }

  if (selected) selected.className = 'moduleRow';
  object.className = 'moduleRowSelected';
  selected = object;

// one button is not an array
  if (document.getElementById('payment'[0])) {
    document.getElementById('payment'[buttonSelect]).checked=true;
  } else {
    //document.getElementById('payment'[selected]).checked=true;
  }
}

function rowOverEffect(object) {
  if (object.className == 'moduleRow') object.className = 'moduleRowOver';
}

function rowOutEffect(object) {
  if (object.className == 'moduleRowOver') object.className = 'moduleRow';
}

function popupImageWindow(url) {
  window.open(url,'popupImageWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width=100,height=100,screenX=150,screenY=150,top=150,left=150')
}

function check_form_optional(form_name) {
  var form = form_name;

  var firstname = form.elements['firstname'].value;
  var lastname = form.elements['lastname'].value;
  var street_address = form.elements['street_address'].value;

  if (firstname == '' && lastname == '' && street_address == '') {
    return true;
  } else {
    return check_form(form_name);
  }
}

function check_form() {
  var error_message = unescape("Missing necessary information!\nPlease fill in correctly.\n\n");
  var error_found = false;
  var error_field;
  var keywords = document.getElementById("advanced_search").keywords.value;
  var pfrom = document.getElementById("advanced_search").pfrom.value;
  var pto = document.getElementById("advanced_search").pto.value;
  var pfrom_float;
  var pto_float;

  if ( (keywords == '' || keywords.length < 1) && (pfrom == '' || pfrom.length < 1) && (pto == '' || pto.length < 1) ) {
    error_message = error_message + unescape("One of the following fields must be filled:\n    Keywords\n    Date added from\n    Date added to\n    Price over\n    Price up to\n");
    error_field = document.getElementById("advanced_search").keywords;
    error_found = true;
  }

  if (pfrom.length > 0) {
    pfrom_float = parseFloat(pfrom);
    if (isNaN(pfrom_float)) {
      error_message = error_message + unescape("Price over, must be a number\n");
      error_field = document.getElementById("advanced_search").pfrom;
      error_found = true;
    }
  } else {
    pfrom_float = 0;
  }

  if (pto.length > 0) {
    pto_float = parseFloat(pto);
    if (isNaN(pto_float)) {
      error_message = error_message + unescape("Price up to, must be a number\n");
      error_field = document.getElementById("advanced_search").pto;
      error_found = true;
    }
  } else {
    pto_float = 0;
  }

  if ( (pfrom.length > 0) && (pto.length > 0) ) {
    if ( (!isNaN(pfrom_float)) && (!isNaN(pto_float)) && (pto_float < pfrom_float) ) {
      error_message = error_message + unescape("Price up to must be larger or same size as Price over.\n");
      error_field = document.getElementById("advanced_search").pto;
      error_found = true;
    }
  }

  if (error_found == true) {
    alert(error_message);
    error_field.focus();
    return false;
  }
}

function popupWindow(url) {
  window.open(url,'popupWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,width=450,height=280,screenX=150,screenY=150,top=150,left=150')
}

function checkFormReview() {
  var error = 0;
  var error_message = unescape("Missing necessary information!\nPlease fill in correctly.\n\n");

  var review = document.getElementById("product_reviews_write").review.value;

  if (review.length < 50) {
    error_message = error_message + unescape("The text must consist at least of 50 alphabetic characters..\n");
    error = 1;
  }

  if (!((document.getElementById("product_reviews_write").rating[0].checked) || (document.getElementById("product_reviews_write").rating[1].checked) || (document.getElementById("product_reviews_write").rating[2].checked) || (document.getElementById("product_reviews_write").rating[3].checked) || (document.getElementById("product_reviews_write").rating[4].checked))) {
    error_message = error_message + unescape("Enter your review.\n");
    error = 1;
  }

  if (error == 1) {
    alert(error_message);
    return false;
  } else {
    return true;
  }
}


function switchJSElements() {
	if(document.getElementsByName) {
		getElementsByClassName(document, 'jsNone');
		for(i=0;i<getElementsByClassName(document, 'jsNone').length;i++) {
			jscss('swap', getElementsByClassName(document, 'jsNone')[i], 'jsNone', 'jsBlock');
		}
	}
}

function hideSubmitButton() {
	btn = document.getElementById('checkout_confirm_button');
	btn2 = document.getElementById('checkout_confirm_button_top');
	hint = document.getElementById('checkout_confirm_hint');
	hint2 = document.getElementById('checkout_confirm_hint_top');
	jscss('add', btn, 'jsNone', '');
	jscss('add', btn2, 'jsNone', '');
	jscss('swap', hint, 'none', 'jsblock');
	jscss('swap', hint2, 'none', 'jsblock');
}

function updateState() {
	$('state_dropdown').innerHTML = '<img src="images/spinner.gif" alt="" /> Loading Data';
	new Ajax.Updater('state_dropdown', 'https://ssl.palace-shops.com/skike.en/updateState.php', {postBody:'id='+$('field_country').options[$('field_country').selectedIndex].value});
}

// Adding multiple window-load-Events won't work in IE 7
function globalInit() {
	switchJSElements();
	popupInit();
	googleMapsInit();
	if(document.getElementById('checkout_confirm_button')) {
		btn = document.getElementById('checkout_confirm_button');
		btn2 = document.getElementById('checkout_confirm_button_top');
		addEvent(btn, 'click', hideSubmitButton);
		addEvent(btn2, 'click', hideSubmitButton);
	}
	if(document.getElementById('state_dropdown') && document.getElementById('field_country') && document.getElementById('field_state')) {
		addEvent(document.getElementById('field_country'), 'change', updateState);
	}
	if(document.getElementById('utmform')) {
		__utmSetTrans();
	}
}
addEvent(window, 'load', globalInit);
