/**
 *	Package: framework.pub
 *
 *	Copyright (c) 2009 by P//MOD.
 *	All rights reserved.
 *	Created on 28-April-2010 by P//MOD
 *	
 *	This file override the basic "initLayout_buttons()" functionality from VI _ressources scripts.
 *	Add new button action behavior depends on if specific class is exists.
 *	Runs only on "gui-select" replaced dropdowns      
 *	   
 */
/* $LastChangedDate: 2009-08-06 19:05:49 +0200 (Do, 06 Aug 2009) $ *****/

function initLayout_buttons() {
	$$("button#site-search-button", "button.generic").each(function(elt) {
		if (!elt.form.id) {
			elt.form.id = Helper.getUniqueId();
		}

		linkAsButton = document.createElement('a');
		linkAsButton.className = (elt.id == "site-search-button") ? "search-button" : "generic-button";
		if (elt.id == "site-search-button") {
			linkAsButton.href = "javascript:submitForm('" + elt.form.id + "');";
			linkAsButton.innerHTML = $(elt).innerHTML;
		}
		// if additional specific class exitsts, then specific behavior 
		else if(elt.hasClassName('target')){
			linkAsButton.href = "javascript:target_button_action('"+elt.form.id+"');";
			linkAsButton.innerHTML = '<span><span>' + $(elt).innerHTML + '</span></span>';
		// default behavior 
		} else {
			linkAsButton.href = "javascript:submitForm('" + elt.form.id + "');";
			linkAsButton.innerHTML = '<span><span>' + $(elt).innerHTML + '</span></span>';
		}
		$(elt).parentNode.replaceChild($(linkAsButton), $(elt));
	});
}

/**
 * "target button" action on gui-selected and native dropdowns. the kind of url loading is depend on given classes.
 * Native dropdowns identified by <select>-tag exists in the given form, else assume is a "gui-select" case. 
 * 
 * @param formid
 * @return
 */
function target_button_action(formid)
{
	var target_url;
	var target_type_element;
	
	// if native select exists 
	if (document.getElementById(formid).getElementsByTagName('select').length > 0)
	{
		var select = document.getElementById(formid).getElementsByTagName('select')[0];
		select = $(select);
		var options = $A(select.getElementsByTagName('option'));	
		var selected_option = options[select.selectedIndex];
		target_url = selected_option.value;
		target_type_element = $(selected_option);
	}
	// exists input element implies gui-select dropdwon  
	else if(document.getElementById(formid).getElementsByTagName('input').length > 0)
	{
		var input = document.getElementById(formid).getElementsByTagName('input')[0];
		target_url = input.value;
		target_type_element = $(input); 
	}
	// if nary expected element then do nothing
	else
	{
		return;
	}
	if(target_url == '')
	{
		return;		
	}
	
	var window_name = 'newWindow_'+Helper.getUniqueId().replace(/-/g, ""); // bacause IE dont accepts '-' in windwoname

	if(target_type_element.hasClassName('option-target-rel') && typeof GLOBAL_LAYER_CONTROLLER != "undefined")
	{
		target_parts = target_url.split("|");
		target_lightbox_id = target_parts[0].replace(PUBLAYER_REL_REGEX, "$1");
		GLOBAL_LAYER_CONTROLLER[target_lightbox_id].toggle();
	}
	else if(target_type_element.hasClassName('option-target-new'))
	{
		window.open(target_url);
	}
	else if(target_type_element.hasClassName('option-target-popup_microsite'))
	{
		window.open(target_url, window_name,'width=800,height=600,left=0,top=0,location=no,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no');
	}
	else if(target_type_element.hasClassName('option-target-popup_378x234'))
	{
		window.open(target_url, window_name,'width=378,height=234,left=0,top=0,location=no,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no');
	}
	else if(target_type_element.hasClassName('option-target-popup_612x234'))
	{
		window.open(target_url, window_name,'width=612,height=234,left=0,top=0,location=no,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no');
	}
	else if(target_type_element.hasClassName('option-target-popup_612x378'))
	{
		window.open(target_url, window_name,'width=612,height=378,left=0,top=0,location=no,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no');
	}
	else if(target_type_element.hasClassName('option-target-popup_772x569'))
	{
		window.open(target_url, window_name,'width=772,height=565,left=0,top=0,location=no,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no');
	}
	else if(target_type_element.hasClassName('option-target-popup_iframe_top'))
	{
		top.location = target_url;
	}
	//input.hasClassName('selectoption-default')
	else
	{
		window.location.href= target_url;			
	}
}

document.observe('dom:loaded', function(){
	// use default transformer
	initLayout_buttons();
});
