var ENQUIRY_PAGE_URL = '/tray/extras/emailhelprequestform.php'
var _class_enquiry_button = 'enquiry_button';
var _class_enquiry_form = 'enquiry_form';

var _id_window_prefix = 'highslide-wrapper-';
var _var_cur_details_window = -1;
var _name_form_contact = 'contact_us';
var _name_textarea_enquiry = 'enquiry';
var _name_sender_rel = 'sender_rel';

var _class_form_contact = 'enquiry_contact_form';
var _class_textarea_enquiry = 'enquiry_textarea';
var _class_sender_rel = 'enquiry_sender_rel';

var _var_hs_enquire_width = 500;
var _var_hs_enquire_height = 600;

var _flag_enquiry_submit_function_defined = false;
var _flag_enquiry_show_function_defined = false;

window.addEvent('domready', function() {
	init_enquiry();
});

function init_enquiry(callback_function) {
	$$('.' + _class_enquiry_button).each(function(el) {
		el.set('href', ENQUIRY_PAGE_URL);
		el.removeEvents('click');
		el.addEvent('click', function() {
			return _showHighslide(el, callback_function);
			//return hs.htmlExpand(el, {objectType: 'iframe', anchor: 'right', allowSizeReduction: true, width: _var_hs_enquire_width, height: _var_hs_enquire_height});
		});
	});
	$$('.' + _class_enquiry_form).each(function(el) {
		var anchor;
		el.getChildren().each(function(el2) {
			if (el2.get('type') == 'submit' || el2.get('type') == 'image') {
				anchor = el2;
				anchor.set('href', ENQUIRY_PAGE_URL);
			}
		});
		el.set('href', ENQUIRY_PAGE_URL);
		el.set('action', ENQUIRY_PAGE_URL);
		el.removeEvents('submit');
		el.addEvent('submit', function() {
			_submitToHighslide(arguments[0], arguments[1], arguments[2]);
			return false;
		}.pass([el, el, callback_function]));
	});
}

function _showHighslide(anchor, callback_function) {
	hs.htmlExpand(anchor, {
		objectType: 'iframe',
		width: _var_hs_enquire_width,
		height: _var_hs_enquire_height
	});
	
	//if having callback function, we don't care about existing function
	if (_flag_enquiry_show_function_defined == false || typeof(callback_function) == 'function') {
		var existing_function = hs.Expander.prototype.onAfterExpand;
		hs.Expander.prototype.onAfterExpand = function(sender) {
			if (typeof(callback_function) == 'function') callback_function(sender);
			if (sender.a.href != null && sender.a.href.indexOf(ENQUIRY_PAGE_URL) != -1) {
				_enq_afteropen_function(anchor, sender);
			}
			if (typeof(existing_function) == 'function' && typeof(callback_function) != 'function') existing_function(sender);
		}
	}
	_flag_enquiry_show_function_defined = true;

	// return false to delay the sumbit until the iframe is ready
	return false;
}
/**
* Function to submit a HTML form into a Highslide iframe popup.
*/
function _submitToHighslide(form, anchor, callback_function) {
	// open an expander and submit our form when the iframe is ready
	hs.htmlExpand(anchor, {
		objectType: 'iframe',
		src: 'about:blank',
		width: _var_hs_enquire_width,
		height: _var_hs_enquire_height
	});
	
	//if having callback function, we don't care about existing function
	if (_flag_enquiry_submit_function_defined == false || typeof(callback_function) == 'function') {
		var existing_function = hs.Expander.prototype.onAfterExpand;
		hs.Expander.prototype.onAfterExpand = function(sender) {
			if (typeof(callback_function) == 'function') callback_function(sender);
			if (sender.a.getProperty('href').indexOf(ENQUIRY_PAGE_URL) != -1) {
				_enq_afteropen_function(form, sender);
				form.target = sender.iframe.name;
				form.submit();
			}
			if (typeof(existing_function) == 'function' && typeof(callback_function) != 'function') existing_function(sender);
		}
	}
	_flag_enquiry_submit_function_defined = true;
	// return false to delay the sumbit until the iframe is ready
	return false;
}

function _enq_afteropen_function(anchor, sender) {
	var lang = new Language();
	lang.preloaded_text = $H(lang.preloaded_text);
	
	if (anchor.get('rel') == '') {
		var rel = '';
	}
	else {
		var rel = anchor.get('rel');
	}
	//find the text area, display _var_enquiry_string
	if (rel != '' && typeof(lang.preloaded_text.get(rel))!= 'undefined') {
		var iframe = sender.iframe;
		if (iframe.addEventListener)
			iframe.addEventListener("load", function() {_e_iframe_load(iframe, rel)}, false)
		else {
			_var_st_upidie_iframe_timeout_check = setTimeout(function() {_st_upidie_timeout_check_function(iframe, rel)}, 100)
		}
	}
}

var _var_st_upidie_iframe_timeout_check = false;

function _st_upidie_timeout_check_function(iframe, rel) {
	if (_e_iframe_load(iframe, rel) == false) {
		_var_st_upidie_iframe_timeout_check = setTimeout(function() {_st_upidie_timeout_check_function(iframe, rel)}, 100);
	}
	else {
		clearTimeout(_var_st_upidie_iframe_timeout_check);
	}
}

function _e_iframe_load(iframe, rel) {
	if (typeof(window.frames[iframe.name]) != 'undefined') {
		var lang = new Language();
		lang.preloaded_text = $H(lang.preloaded_text);
		
		var text_area = getElementsByClassName(window.frames[iframe.name].document, '*', _class_textarea_enquiry)[0];
		if (typeof(text_area) != 'undefined') {
			var input_sender_rel = getElementsByClassName(window.frames[iframe.name].document, '*', _class_sender_rel)[0];
			input_sender_rel.value = rel;
			var preloaded = lang.preloaded_text.get(rel);
			var no_cart_items = false;
			var preloaded_text = '';
			if (_isArray(preloaded)) {
				if (typeof(preloaded[1]) != 'undefined') {
					no_cart_items = preloaded[1];
				}
				preloaded_text = preloaded[0];
			}
			else {
				preloaded_text = preloaded;
			}
			if (no_cart_items) {
				text_area.value = preloaded_text;
			}
			else {
				text_area.value = preloaded_text + "\n" + text_area.value;
			}
			return true;
		}
	}
	return false;
}

function _isArray(obj) {
   if (obj.constructor.toString().indexOf("Array") == -1)
      return false;
   else
      return true;
}


/*
	Written by Jonathan Snook, http://www.snook.ca/jonathan
	Add-ons by Robert Nyman, http://www.robertnyman.com
*/

function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}












