// 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: 826,
			height: 582,
			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: "rate",
			width: 500,
			height: 700,
			scrollbars:true,
			center:true,
			location:true,
			resizable:true,
			status:false,
			title:"This link points to another domain and opens in a new window"
		});
		popup.addType({
			name: "chat",
			width: 600,
			height: 550,
			scrollbars:false,
			center:true,
			location:false,
			resizable:false,
			status:false,
			title:""
		});
		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 updateState() {
	$('state_dropdown').innerHTML = '<img src="images/spinner.gif" alt="" /> Loading Data';
	new Ajax.Updater('state_dropdown', 'https://www.cuckoo-palace.com/updateState.php', {postBody:'id='+$('field_country').options[$('field_country').selectedIndex].value});
}

function initWizard() {
	loadWizardManufacturer();
	/*
	new Ajax.Updater('wizard', 'http://www.cuckoo-palace.com/wizard.start.php', {
		onComplete: function(res) {
			$$('#wizard li form').invoke('hide');
		}
	})
	*/;
}

function loadWizardManufacturer() {
	new Ajax.Updater('form-manufacturer', 'http://www.cuckoo-palace.com/wizard.manufacturer.php', {
		onComplete: function(res) {
			 $$('#form-manufacturer label input').invoke('hide');
			 $$('#form-manufacturer label').invoke('observe', 'click', toggleCheckbox);
			//Effect.toggle($('form-manufacturer'));
		}
	});
}

function toggleCheckbox() {
	label = (this.id);
	checkbox = $(label).down();
	checked=false;

	field = $(checkbox).name.replace(/\[\]/, '');
	all_elements = $$('.input-'+field);
	
	if(checkbox.checked==true) {
		this.addClassName('active');
	} else {
		this.removeClassName('active');
	}
	all_elements.each(function(el) {
		if(el.checked==true) {
			checked = true;
		}
	});
	if(checked==false && field!="music-dancer[]") {
		$$("fieldset.next").invoke('hide');
	} else {
		$$("fieldset.next").invoke('show');
	}
}

function submitAndGlide(f, next) {
	switch(next) {
		case 'style':
			url = 'http://www.cuckoo-palace.com/wizard.style.php';
		break;
		case 'movement':
			url = 'http://www.cuckoo-palace.com/wizard.movement.php';
		break;
		case 'price':
			url = 'http://www.cuckoo-palace.com/wizard.price.php';
		break;
		case 'music-dancer':
			url = 'http://www.cuckoo-palace.com/wizard.music-dancer.php';
		break;
	}
	new Ajax.Updater('form-'+next, url, {
		parameters: $(f).serialize(),
		onComplete: function(res) {
			 $$('#form-'+next+' label input').invoke('hide');
			 $$('#form-'+next+' label').invoke('observe', 'click', toggleCheckbox);
			//Effect.toggle($('form-manufacturer'));
			my_glider.next();
		}
	});
}

// Adding multiple window-load-Events won't work in IE 7
function globalInit() {
	switchJSElements();
	popupInit();
	googleMapsInit();
	if(document.getElementById('utmform')) {
		__utmSetTrans();
	}
	if(document.getElementById('wizard-glider')) {
		initWizard();
	}
}
addEvent(window, 'load', globalInit);

