// hides the Tooltip if necessary

hideTip = function () {
	if (document.getElementById('tooltip'))	document.getElementById('tooltip').style.visibility = 'hidden';
};



// TabStarter

function initTabs() {
	TabControl('tab-content-holder', {
		current: (document.location.href.match(/#([-_\w]+)$/) || []).last() // try to catch the element from the url if nothing is found the first element will be displayed
		// current: (document.location.href.match(/#([-_\w]+)$/) || []).last() || 'product-list' // try to catch the element from the url or use id 'product-list' instead
	});
};


// closing the wizzard
// ### deprecated ###

function closeWizzard() {
	if (document.getElementById('wizzard')) {
		var close = document.getElementById('close-wizz').getElementsByClassName('close')[0];
		close.onclick = function() {
      $('wizzard').remove();
      hideTip();
      return false;
    };
	};
};

//Used to clear inputfileds onfocus
function clearText(thefield){
	if (thefield.defaultValue==thefield.value)
		thefield.value = "";
}

// opening popups
// Use like this:
// <a href="popup.html" onclick="return Popup.openup(this);">Popup with default size</a>
// <a href="popup.html" onclick="return Popup.openup(this,1000,400);">Popup with special size</a>
Popup = {
	openup:function(obj, w, h) {
		var url = (obj.getAttribute)? obj.getAttribute('href') : obj.href;
		if(!url) return true; // if href is not given, no popup will be opened
		var w = (w === undefined)? 710 : w;
		var h = (h === undefined)? 570 : h;
		var pop = window.open(url, '', 'width='+w+', height='+h+', resizable=yes, scrollbars=yes');
		if (pop) {
			if (pop.focus) pop.focus();
			return false; // prevents link to open in parent window
		} else {
			return true; // if popup could not be opened link opens in original window
		}
	}
}

function highlighter(elementlist, colorstart, colorend){
	var curLen = elementlist.length;
	for(i = 0; i < curLen; i++){

		var element = $(elementlist[i][0]);
		var startC = elementlist[i][1];
		var endC = elementlist[i][2];
		var cssClassen = element.className;
		cssClassen = cssClassen + ' error';
		element.className = cssClassen;
		//new Effect.Highlight(elementlist[i][0], {startcolor:startC, endcolor:endC});

	}
}

//Function for checking if size of the product was selected on ProductAddToBasket page
function checkSelectedSize(errorMessage)
{
	var size = document.forms.frmAddToBasket.size.value;
	if (size > 0) {
		document.forms.frmAddToBasket.submit();
	}else {
		alert(errorMessage);
	}
}

// submit search from page header
function submitSearch(url) {
	var query = $('query').value;
	document.location.href = url + 'query/' + query;
}

// submit the search field
function triggerSearch() {
    startEditing();
    $('navigation-search').submit();
}

function triggerResetSearch(){
    $('navigation-search-box').value = '';
    triggerSearch();
}

function initSearchField(){
    if(searchFieldDefaultText){
        endEditing();
        Event.observe($('navigation-search-box'), 'focus', startEditing);
        Event.observe($('navigation-search-box'), 'blur', endEditing);
    }
}
function startEditing(){
    if(searchFieldDefaultText && $('navigation-search-box').value == searchFieldDefaultText){
        $('navigation-search-box').value = '';
        $('navigation-search-box').removeClassName('hint');
    }
}
function endEditing(){
    if(searchFieldDefaultText && $('navigation-search-box').value == ''){
        $('navigation-search-box').value = searchFieldDefaultText;
        $('navigation-search-box').addClassName('hint');
    }
}
// load captcha image
function loadFormCaptcha(url, divId) {
	$(divId).innerHTML = '';
	new Ajax.Updater(divId, url, {evalScripts:true, asynchronous:true});
	return false;
}

// refresh the mini basket in page header
// ajaxURL is like http://spreadshirt.de/de/DE/Ajax/
function refreshBasket(ajaxUrl) {
	new Ajax.Request(ajaxUrl + 'Basket/refreshBasket/', {
	    method: 'get',
        onSuccess: function(response) {
            var basketData = response.responseText.evalJSON(true)
            if($('minibasket')) {
                if($('minibasket-count')) $('minibasket-count').innerHTML = basketData.count;
                if($('minibasket-price')) $('minibasket-price').innerHTML = basketData.price;
                if (basketData.count > 0) {
                    $('minibasket').addClassName('basket-active');
                    $('minibasket').removeClassName('basket-inactive');
                } else {
                    $('minibasket').addClassName('basket-inactive');
                    $('minibasket').removeClassName('basket-active');
                }
            }
        }
     }
);
	return false;
}

// refresh the page header incl basket
// ajaxURL is like http://spreadshirt.de/de/DE/Ajax/
function updatePage(ajaxUrl, updateParams) {
	new Ajax.Request(ajaxUrl + 'Www/updatePage/', {
	    method: 'get',
        parameters: updateParams,
        onSuccess: function(transport) {
            var update = transport.responseText.evalJSON(true)
            //update login status
            if($('headerNavigation')){
                $('headerNavigation').innerHTML = update.headerNav;
            }
            isUserAuthenticated = update.isUserAuthenticated;
            //update basket
            if($('minibasket')) {
                if (update.count > 0) {
                    $('minibasket').addClassName('basket-active');
                    $('minibasket').removeClassName('basket-inactive');
                } else {
                    $('minibasket').addClassName('basket-inactive');
                    $('minibasket').removeClassName('basket-active');
                }
                if($('minibasket-count')) $('minibasket-count').innerHTML = update.count;
                if($('minibasket-price')) $('minibasket-price').innerHTML = update.price;
                $('minibasket').removeClassName('header-hidden');
            }
            s = Object.extend(s, update.tracking);
            if (s.sem == true) { s.pageURL = window.location + '?sem=true';}
            /************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/
            var s_code=s.t();if(s_code)document.write(s_code)
//          if(navigator.appVersion.indexOf('MSIE')>=0)document.write(unescape('%3C')+'\!-'+'-')
//          <!-- End SiteCatalyst code version: H.21. -->
        }
     });
	return false;
}

// simple paginator ajax wrapper
function paginator(divId, targetURL) {
	new Ajax.Updater(divId, targetURL, {evalScripts:true, asynchronous:true});
	return false;
}

// home page AB testes script to switch styles for 2 buttons at one time

function homepageContentTest(homepageAction) {

	  switch (homepageAction) {

		   case 1:
			$('open-your-own-shop-image').style.background = 'url(http://www.spreadshirt.net/Public/Common/images/ab/button1_hover_uk.jpg) no-repeat';
			$('open-your-own-shop-button').style.color = '#FFFAC8';
			break;

		   case 2:
			$('open-your-own-shop-image').style.background = 'url(http://www.spreadshirt.net/Public/Common/images/ab/button1_link_uk.jpg) no-repeat';
			$('open-your-own-shop-button').style.color = '#FFFFFF';
			break;

		   case 3:
			$('create-custom-product-image').style.background = 'url(http://www.spreadshirt.net/Public/Common/images/ab/button2_hover_uk.jpg) no-repeat';
			$('create-custom-product-button').style.color = '#FFFAC8';
			break;

		   case 4:
			$('create-custom-product-image').style.background = 'url(http://www.spreadshirt.net/Public/Common/images/ab/button2_link_uk.jpg) no-repeat';
			$('create-custom-product-button').style.color = '#FFFFFF';
			break;

		  case 5:
			$('create-custom-product-image-us').style.background = 'url(http://www.spreadshirt.com/Public/Common/images/ab/button1_hover.gif) no-repeat';
			$('create-custom-product-button-us').style.color = '#FFFAC8';
			break;

		   case 6:
			$('create-custom-product-image-us').style.background = 'url(http://www.spreadshirt.com/Public/Common/images/ab/button1_link.gif) no-repeat';
			$('create-custom-product-button-us').style.color = '#FFFFFF';
			break;

		   case 7:
			$('open-your-own-shop-image-us').style.background = 'url(http://www.spreadshirt.com/Public/Common/images/ab/button2_hover.gif) no-repeat';
			$('open-your-own-shop-button-us').style.color = '#FFFAC8';
			break;

		   case 8:
			$('open-your-own-shop-image-us').style.background = 'url(http://www.spreadshirt.com/Public/Common/images/ab/button2_link.gif) no-repeat';
			$('open-your-own-shop-button-us').style.color = '#FFFFFF';
			break;

			case 9:
			$('create-custom-product-image-us').style.background = 'url(http://www.spreadshirt.com/Public/Common/images/ab/button_hal_1_hover.gif) no-repeat';
			$('create-custom-product-button-us').style.color = '#FFFAC8';
			break;

		   case 10:
			$('create-custom-product-image-us').style.background = 'url(http://www.spreadshirt.com/Public/Common/images/ab/button1_hal_link.gif) no-repeat';
			$('create-custom-product-button-us').style.color = '#FFFFFF';
			break;

		   case 11:
			$('open-your-own-shop-image-us').style.background = 'url(http://www.spreadshirt.com/Public/Common/images/ab/button2_hal_hover.gif) no-repeat';
			$('open-your-own-shop-button-us').style.color = '#FFFAC8';
			break;

		   case 12:
			$('open-your-own-shop-image-us').style.background = 'url(http://www.spreadshirt.com/Public/Common/images/ab/button2_hal_link.gif) no-repeat';
			$('open-your-own-shop-button-us').style.color = '#FFFFFF';
			break;


		   case 13:
			$('open-your-own-shop-image').style.background = 'url(http://www.spreadshirt.net/Public/Media/startteasers/start_teaser1_hover.jpg) no-repeat';
			$('open-your-own-shop-button').style.color = '#FFFAC8';
			break;

		   case 14:
			$('open-your-own-shop-image').style.background = 'url(http://www.spreadshirt.net/Public/Media/startteasers/start_teaser1_link.jpg) no-repeat';
			$('open-your-own-shop-button').style.color = '#FFFFFF';
			break;

		   case 15:
			$('create-custom-product-image').style.background = 'url(http://www.spreadshirt.net/Public/Media/startteasers/start_teaser2_hover.jpg) no-repeat';
			$('create-custom-product-button').style.color = '#FFFAC8';
			break;

		   case 16:
			$('create-custom-product-image').style.background = 'url(http://www.spreadshirt.net/Public/Media/startteasers/start_teaser2_link.jpg) no-repeat';
			$('create-custom-product-button').style.color = '#FFFFFF';
			break;

			}


}

function show_hide_confo_info(to_show) {
    hide_confo_infos();
    document.getElementById(to_show).style.display='block';
}

function hide_confo_infos() {
    var Elements = document.getElementsByTagName("*");
     for(i=0; i < Elements.length; i++) {
        var Id = Elements[i].id;

        var mySearchExpression=eval("/confo_info.+/");
        var Result = Id.search(mySearchExpression);
        if (Result != -1) {
            document.getElementById(Id).style.display = 'none';
        }
     }
}

function onChangeProductType(producttype){
	if(typeof onChangeProductTypeImplementation == 'function'){
		onChangeProductTypeImplementation(producttype);
	}
}

var surveyOpen = false;
var surveyNotOpen = false;

var surveyUrl = '/de/DE/Ajax/Javascript/surveyPopup/';

function surveyAddLinkMethod() {
	Element.addMethods('a', setSurveyNotOpen);
}
function surveyOpenOnExit() {
	if (surveyOpen == true && surveyNotOpen == false) {
		SprdSurveyWin = window.open(surveyUrl, 'SprdSurvey', 'width=750,height=780,left=50,top=50');
		SprdSurveyWin.blur();
		window.focus();
	}
}
function setSurveyOpen(setSurveyOpen) {
	surveyOpen = setSurveyOpen;
}
function setSurveyNotOpen() {
	surveyNotOpen = true;
}
function setSurveyNotOpenInit() {
	surveyNotOpen = false;
}
function setSurveyUrl(session) {
	if (session > 0) {
		surveyUrl = surveyUrl + '?session=' + session;
	}
}
function subscribeCustomerNewsletter(url) {
    var email = $('customerNewsletterEmail').value;
    if(email!='') {
        $('newsletter-loading').show();
        $('newsletter-sign-up-form').hide();
        $('messageNewsletterError').hide();
        $('messageNewsletterOK').hide();
        url = url + 'email/' + email;
        new Ajax.Request(url, {
            method: 'get',
            onSuccess: function(transport) {
                $('newsletter-loading').hide();
                $('newsletter-sign-up-form').show();
                if(transport.responseText == 'ok') {
                    $('messageNewsletterError').hide();
                    $('messageNewsletterOK').show();
                } else {
                    $('messageNewsletterError').show();
                    $('messageNewsletterOK').hide();
                }
            }
        });
    }
}

/*
function cnnMagic(){
	allShirtsLink = document.getElementById('all-shirts');
	loginLink = document.getElementById('cnn-login');
	logoutLink = document.getElementById('cnn-logout');
	cartLink = document.getElementById('cnn-cart');

	if(typeof allShirtsUrl != 'undefined'){
		allShirtsLink.href = allShirtsUrl;
	}

	if(typeof loggedIn != 'undefined'){
		if(loggedIn == true){
			loginLink.style.display = 'none';
			logoutLink.style.display = 'block';
		}else{
			loginLink.style.display = 'block';
			logoutLink.style.display = 'none';
		}
	}
	if(typeof siteUrl != 'undefined'){
		cartLink.href = siteUrl + "-/-/Shop/Basket/index";
		loginLink.href = siteUrl + "-/-/Shop/Login/index";
		logoutLink.href = siteUrl + "-/-/Shop/Login/logout";
	}

}*/

function ajaxFormSubmit(form, callbackFinish, callbackStart){
    var formElement,
        data,
        url;

    formElement = $(form);
    data = formElement.serialize();
    url = formElement.action;

    if('function' === typeof callbackStart){
        callbackStart();
    }

    new Ajax.Request(url, {
        method: 'get',
        parameters: data,
        onSuccess: callbackFinish
    });
}

function ajaxUpdateDiv(urlString, updatedDiv, form){

   if(typeof AjaxUrl != 'undefined'){
       var completeAjaxUrl = AjaxUrl+urlString;
       var updateDiv = $(updatedDiv);
       if(updateDiv){
           var pars = Form.serialize(form);

             new Ajax.Request(completeAjaxUrl, {
				  method: 'get',
				  parameters: pars,
				  onSuccess: function(transport) {

				    if (transport.responseText.match('ajaxredirect/1') == null){
				      updateDiv.update(transport.responseText);
				    }
				    else{
					    if(typeof trackingString != 'undefined'){
	                            trackLink(this, 'pageName', trackingString + ' - New user - Layer - Email exists - Login Succesfully');
	                            }
				        window.location = transport.responseText;
				    }
				  }
				});
       }
   }

}

function checkMailAjax(email){

	if(typeof AjaxUrl != 'undefined'){
		var urlString = 'Address/checkemail/ajaxlogin/1/email/' + email;
		var completeAjaxUrl = AjaxUrl+urlString;
		var show_password = false;
		new Ajax.Request(completeAjaxUrl, {
                  method: 'get',
                  onSuccess: function(transport) {

                    if (transport.responseText.match('true') != null && $('login-email-send').style.display != 'block'){
                    	$('description-register-div').style.display = 'none';
                    	$('form-email-login').value = '1';
                        $('login-email-send').style.display = 'block';
                        $('cancel-email-login').style.display = 'block';
                    	Effect.SlideDown('password-slidedown-div', 
                                        {duration: 0.5, queue: 'end'});
                        
                    	setFocusToField('passwordSlideDown');
                    }
                  }
                });
 
	}
}

function disableEmailAddressLogin(){
    $('form-email-login').value = '0';
    $('login-email-send').style.display = 'none';
    $('cancel-email-login').style.display = 'none';
    Effect.SlideUp('password-slidedown-div');
    
}

function setFocusToField(field){
	$(field).style.borderColor='red';
}
function hide_user_infos() {
    var Elements = document.getElementsByTagName("*");
     for(i=0; i < Elements.length; i++) {
        var Id = Elements[i].id;

        var mySearchExpression=eval("/user_info.+/");
        var Result = Id.search(mySearchExpression);
        if (Result != -1) {
            document.getElementById(Id).style.display = 'none';
        }
     }
}

function switchform_pass(){
    var passwordButton = $('user-login-link-button');
    var cancelButton = $('user-login-link-cancel-button');

    $('lightbox-form-login').style.display = 'none';
    $('lightbox-form-lost-password').style.display = 'block';
    if(typeof password_save_title != 'undefined'){
        passwordButton.innerHTML = password_save_title;
    }

    passwordButton.onclick = function() {eval("document.lostPasswordForm.submit()");return false;}
    cancelButton.onclick = function() {eval("switchform_login()");return false;}

    loadFormCaptcha(captchaUrl, 'captchaWrapper');

}
function switchform_login(){
    var passwordButton = $('user-login-link-button');
    var cancelButton = $('user-login-link-cancel-button');
    if(typeof login_link_title != 'undefined'){
        passwordButton.innerHTML = login_link_title;
    }
    $('lightbox-form-lost-password').style.display = 'none';
    $('lightbox-form-login').style.display = 'block';
    passwordButton.onclick = function() {eval("document.frmLogin.submit()");return false;}
    cancelButton.onclick = function() {eval("login_slideup('login-fields-to-slide', 'user-login-link-button', 'frmLogin', 'user-login-link-cancel-button')");return false;}

}

function editEmailAddress(){
	var elem = 'email';
	document.frmCheckoutAddress.email.disabled = false;
	document.frmCheckoutAddress.email.focus();
	$('cancel-email-edit').style.display = 'block';
	$('edit-email-button').style.display = 'none';
	$('edit-email-send').style.display = 'block';
	$('form-email-edit').value ='1';
	if(typeof login_email_change_cache != 'undefined'){
		login_email_change_cache = document.frmCheckoutAddress.email.value;
	}
	Effect.Pulsate(elem, {pulses: 1, duration: 0.7, from: 0.5});
}
function disableEmailAddress(){
	if(typeof login_email_change_cache != 'undefined'){
		document.frmCheckoutAddress.email.value = login_email_change_cache;
	}
    document.frmCheckoutAddress.email.disabled = true;
    $('cancel-email-edit').style.display = 'none';
    $('edit-email-send').style.display = 'none';
    $('form-email-edit').value ='0';
    $('edit-email-button').style.display = 'block';
	
    
}

function loginKeyPress(e)
{
    if (e.keyCode == Event.KEY_RETURN)
    {
        $('user-login-link-button').onclick();
    }
}


function login_slide(div, button, login_form, button_to_hide){
	$('lightbox-form-login').style.display = 'block';
    Effect.SlideDown(div);
    Effect.Appear(button_to_hide);
	$(button).onclick = function() {
        $(login_form).submit();
    }
}

function login_slideup(div, button, login_form, button_to_hide){
    
    Effect.Fade(button_to_hide);
    Effect.SlideUp(div);
    $('lightbox-form-lost-password').style.display = 'none';
    $(button).onclick = function() {eval("login_slide('"+div+"', '"+button+"', '"+login_form+"', '"+button_to_hide+"')");return false;}
    if(typeof login_link_title != 'undefined'){
    	$(button).innerHTML = login_link_title;
    }
}


/* now done in init.js
try {
	Event.observe(window,'load',initTabs); // init tab-navi fpr switching content
	Event.observe(window,'load',initIbox); // init ibox for image-zoom and external content
	Event.observe(window,'load',initTitles); // init tooltips
	Event.observe(window,'load',setSurveyNotOpenInit); // init link add
	Event.observe(window,'load',surveyAddLinkMethod); // init link add
	Event.observe(window,'unload', surveyOpenOnExit); // init survey on exit
} catch(error) {}
*/

/**
 * implements missing ibox feature to just display arbitrary html in an ibox
 */
showHtmlInIbox = function(strHTML, params) {
    hideTip();

    var ibox = getElem('ibox_wrapper');
    
    if(params['height']) {
        ibox.style.height = params['height']+'px';
    }
    else {
        ibox.style.height = '400px';
    }

    if(params['width']) {
        ibox.style.width = params['width']+'px';
    }
    else {
        ibox.style.width = '600px';
    }

    ibox.style.display = "";
    ibox.style.visibility = "hidden";
    hideEverySelect();
    posToCenter(ibox);
    ibox.style.visibility = "visible";

    getElem('i_con').style.overflow = "auto";

    setContent('i_con', strHTML);
    // go and fade anywhere else
    ibox.onclick = null;getElem("ibox_close_a").onclick = function() {
                hideIbox();return false;
            };

    return true;
}

//~~~ Remove size options ~~~
function removeArticleSizesInAddToBasketIBox()
{
    if($('sizeDropDown')) {
        var object = $('sizeDropDown');
        try {
            for(i = object.options.length - 1; i >= 0; i--) object.options[i] = null;
        } catch(error) {}
    }
}

//~~~ Add size to selectbox ~~~
function addArticleSizeInAddToBasketIBox(id, name, i, selected)
{
	var option = document.createElement('option');
	option.setAttribute('id', 'colorSize'+i);
	option.setAttribute('value', id);
    if(selected) {
        option.setAttribute('selected', 'selected');
    }
	option.innerHTML =  name;
	try {
        if($('sizeDropDown').nodeType == 1 && $('sizeDropDown').nodeName == 'SELECT') {
            $('sizeDropDown').appendChild(option);
        }
	} catch(error) {}
}

function switchColorInAddToBasketIBox(productId) {
    colorId = $F('colorDropDown');
    getArticleSizesInAddToBasketIBox(productId, colorId);
}

function getArticleSizesInAddToBasketIBox(articleId, colorId) {
    if(articleId > 0) {
        var url = AjaxUrl + 'Article/Size/product/'+articleId;
        if(colorId == 0 && $('productColor'+articleId)) {
            colorId = $F('productColor'+articleId);
        }

        if (colorId >= 1) {
            url += '/color/'+colorId;
        }

        var currentSize = $F('sizeDropDown');
        removeArticleSizesInAddToBasketIBox();

        new Ajax.Request(url, {
            method: 'post',
            onSuccess: function(transport)
            {
                var myObject = eval('('+transport.responseText+')');
                if ( myObject.count > 1 ) addArticleSizeInAddToBasketIBox(0, '...');
                for (i = 0; i < myObject.count; i++) {
                    var selected = myObject.sizes[i].sizeId == currentSize;
                    addArticleSizeInAddToBasketIBox(myObject.sizes[i].sizeId, myObject.sizes[i].sizeName, i, selected);
                }
                switchingColors = false
            }
        });

    }
}

function redirectAfterNSeconds(url, seconds) {
    window.setTimeout("redirectHelper('" + url + "')", seconds * 1000);
}

function redirectHelper(url) {
    window.location.href = url;
}

// adds trim function if not available (important for IE)

if(typeof String.prototype.trim !== 'function') {
  String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, '');
  }
}


