// Set up webshop class debug
//webshop.debug = true;
// Set up callback function for ajax request
updateWizardResultScreenCallBack=function(response){
    document.getElementById('products_container').innerHTML = response;
    new Wizard();
    jQuery('.wizard-criteria-filter label').each(function(){
    	var link = jQuery(this);
	    link.click(function(){
	    	if ( !this.filterClicked )
	    	{
	    		this.filterClicked = true;
	    		updateWizardResultScreen(link.attr('category'),link.attr('filter'),link.attr('step'),link.attr('shop'), true);
	    	}
	    });
    });
	  jQuery(".shelf").each(function(){
	    var source = jQuery(this);
	
	    // Disable forms.
	    //jQuery('form', source).attr("onsubmit", "return false;");
	    //window.status = jQuery('form', source);
	
	    // Attach the .add method to all add buttons
	    jQuery(".inner.cart", source).bind("click", function(event){
	
	      var value = jQuery(this).css("background-image");
	
	      var url =  value.match(/url\(\"?([^\")]+)\"?\)/)[1];
	      var parts = url.split("/");
	      var file = parts[parts.length - 1];
	
	      url = value.replace(file, file.replace(/\-click\.gif|\.gif/, "-click.gif" + "?" + Math.random()));
	      jQuery(this).css("background-image", url);
	
	      store.driver.add(new Product(source));
	      return false;
	    });
		});
}

updateWizardScreenCallBack=function(response){
    document.getElementById('products_container').innerHTML = response;
    new Wizard();
}

explanationSendCallBack=function(response){
    if (response == true)
    {
        //tb_remove();
        document.getElementById('step1').style.display = 'none';
        document.getElementById('step2').style.display = 'block';
    }
    else if (response == false)
    {
        document.getElementById('inputError').innerHTML = 'Kan geen bericht verzenden. Tevreden, probeer later.';
    }
    else
    {
        document.getElementById('inputError').innerHTML = '&nbsp; ' + loginData;
    }
}

worksuggestSendCallBack=function(response){
    if (response)
    {
        //tb_remove();
        document.getElementById('step1').style.display = 'none';
        document.getElementById('step2').style.display = 'block';
		document.getElementById('from_name_text').innerHTML = response.from_name;
		document.getElementById('to_name_text').innerHTML = response.to_name;
    }
    else (response == false)
    {
        document.getElementById('inputError').innerHTML = 'Kan geen bericht verzenden. Tevreden, probeer later.';
    }
}


updateProductsScreenCallBack=function(response){
    document.getElementById('products_container').innerHTML = response;
    jQuery('.togglekenmerken').toggleDiv('.kenmerken','Toon alle kenmerken','Verberg alle kenmerken', 'plus', 'min');
    jQuery('img.zoom').toggleZoom();

	jQuery(".shelf").each(function(){
    var source = jQuery(this);

    // Disable forms.
    //jQuery('form', source).attr("onsubmit", "return false;");
    //window.status = jQuery('form', source);

    // Attach the .add method to all add buttons
    jQuery(".inner.cart", source).bind("click", function(event){

      var value = jQuery(this).css("background-image");

      var url =  value.match(/url\(\"?([^\")]+)\"?\)/)[1];
      var parts = url.split("/");
      var file = parts[parts.length - 1];

      url = value.replace(file, file.replace(/\-click\.gif|\.gif/, "-click.gif" + "?" + Math.random()));
      jQuery(this).css("background-image", url);

      store.driver.add(new Product(source));
      return false;
    });
	});
	  // Attach sliders to select elements
	var sliders = new Array();
	jQuery('select.slider').each(function(select){
		sliders.push(new Range($(this)));
	});	

	if (browser.winIE6Down) {
		jQuery('input.delete').hover(
			function () { jQuery(this).addClass('hover'); },
			function () { jQuery(this).removeClass('hover'); }
		);
	}
	jQuery('input[@type=checkbox]').css({border:'none', margin: '0px'});
	jQuery('input[@type=image]').css({border:'none'});
	jQuery('.search-filter-list').each(function(){
		var link = jQuery('a.desc', jQuery(this));
		if ( link && link.attr('className') )
		{
			var cls = link.attr('className').match(/toggle.*$/).toString().replace(/toggle/,'');
			jQuery('.toggle' + cls).toggleDiv('.' + cls,'Meer ' + cls,'Verberg ' + cls, 'plus', 'min');
		}
	})
}

saveCustomerAccountCallBack=function (response){
    //tb_remove();
    tb_show(null,'#TB_inline?height=115&amp;width=300&amp;inlineId=modalResultContent&amp;modal=true',false);
    document.getElementById('modalAccountContent').style.display = 'none';
    document.getElementById('div-form').style.display = 'none';
    document.getElementById('result-text').innerHTML = 'Gebruiker ' + response.full_name + ' is toegevoegd als ' + response.customer_account_type_name + ' met bestellimiet<br />' + response.order_amount + ' en ontvangt een e-mail op ' + response.email;
}

getCustomerAccountCallBack=function (response){
    form = document.update_customer_account;
    form.customer_account_id.value = response.id;
    form.first_name.value = response.first_name;
    form.middle_name.value = response.middle_name;
    form.last_name.value = response.last_name;
    if (response.gender == 'm')
        form.gender[0].checked = true;
    else
        form.gender[1].checked = true;
    form.email.value = response.email;
    form.phone.value = response.phone1;
    if (!response.customer_account_type_id)
        response.customer_account_type_id = 1;
    form.customer_account_type_id.value = response.customer_account_type_id;
    if (!response.order_amount)
        response.order_amount = 100;
    form.order_amount.value = response.order_amount;
}

getAddressCallBack=function (response){
    form = document.update_address_account;
    form.address_id.value = response.id;
    form.company_name.value = response.company_name;
	form.address_name.value = response.name;
    form.street.value = response.street;
    //form.number.value = response.number;
    //form.number_addition.value = response.number_addition;
    form.postcode.value = response.postcode;
	form.phone.value = response.phone;
    form.city.value = response.city;
    form.country.value = response.country;
    form.note.value = response.note;
}

getProjectCallBack=function (response){
    form = document.update_project_account;
    form.project_id.value = response.id;
    form.project_name.value = response.name;
    form.project_desc.value = response.description;
}

cartCallBack=function (summaryData){
    //alert("webshop.callBack");
    //document.getElementById('cart_item_count').innerHTML = summaryData.item_count;
    //$('cart_price').innerHTML = summaryData.price_promotion_total.replace('.',',');
    //$('directAfrekenen').className = 'winkelwagenVisible';

    items = '<ul>';
    i=0;
    while (summaryData.items[i])
    {
    	items = items + '<li>' + summaryData.items[i].name + ' (' + summaryData.items[i].quantity + ') [<a href="/" onclick="deleteCartItem(' + summaryData.items[i].shopping_cart_item_id + '); return false;">X</a>]</li>';
    	i++;
    }
    items = items + '</ul>';

    document.getElementById('cartmemory').innerHTML = items;

    // navigationWinkelwagen
    /*new Effect.Highlight($('cart'),
    {startcolor:'#FF0000', endcolor:'#DDE9F5'});*/

    //document.getElementById('shopping_cart').removeAttribute('disabled');

    /*if (1 == summaryData.item_count)
    document.getElementById('navigationWinkelwagen').innerHTML =
    document.getElementById('navigationWinkelwagen').innerHTML.replace('artikelen','product');
    else if (document.getElementById('navigationWinkelwagen').innerHTML.indexOf('artikelen') < 0)
    document.getElementById('navigationWinkelwagen').innerHTML =
    document.getElementById('navigationWinkelwagen').innerHTML.replace('product','artikelen');*/
}

listGetListsCallBack=function (listsData){
   form = document.list_save_form;
   form.favorite_list_select.options[0] = new Option('--', '');
   i=0;
   while (listsData[i]) {
       i++;
       form.favorite_list_select.options[i] = new Option(listsData[i - 1].name, listsData[i - 1].id);
   }
}

listLoginCallBack=function (loginData){
    if (loginData == true)
    {
        //tb_remove();
        document.getElementById('step1').style.display = 'none';
        if (document.list_login_form.remember.checked)
           step = 2;
        //tb_show(null,'#TB_inline?inlineId=modalFavoriteListStep2&amp;modal=true',false);
        //document.getElementById('popup-favorite-list-step1').style.display = 'none';
        //document.list_login_form.userName.value = '';
        //document.list_login_form.password.value = '';
        document.getElementById('step2').style.display = 'block';
        webshop.callback = listGetListsCallBack;
        webshop.getFavoriteLists();
    }
    else if (loginData == false)
    {
        document.getElementById('loginError').innerHTML = '&nbsp; Incorrent email/password combination';
    }
    else
    {
        document.getElementById('loginError').innerHTML = '&nbsp; ' + loginData;
    }

}

listSaveCallBack=function (saveData){
    if (saveData == true)
    {
        document.getElementById('step2').style.display = 'none';
        document.getElementById('step3').style.display = 'block';
    }
    else
    {
        document.getElementById('saveError').innerHTML = '&nbsp; ' + saveData;
    }
}

addFavoriteProductCallback=function (response)
{
	jQuery('#ajax_results').html(response.text);
}

// Set up onclick event for cart icon
function addToCart(variationId, quantity){
    webshop.callback = cartCallBack;
    if ('' == variationId) {
        alert('Kies een maat');
    } else {
        webshop.addItem(variationId, quantity);
        //$('shopping_cart').setAttribute('disabled','disabled');
        //!!!!!ask about this Darius!!!!!
    }
}

function deleteCartItem(itemId){
    webshop.callback = cartCallBack;
    webshop.setItemQuantity(itemId, 0);
}

function showPopupFavoriteList() {
    if (step == 1)
        document.getElementById('step1').style.display = 'block';
    if (step == 2)
    {
        document.getElementById('step2').style.display = 'block';
        webshop.callback = listGetListsCallBack;
        webshop.getFavoriteLists();
    }
    //document.getElementById('popup-favorite-list-step1').style.display = 'block';
}

function hidePopupFavoriteList() {
    tb_remove();
    document.getElementById('step1').style.display = 'none';
    document.list_login_form.userName.value = '';
    document.list_login_form.password.value = '';
    document.list_login_form.remember.checked = false;
    document.getElementById('loginError').innerHTML = '';

    document.getElementById('step2').style.display = 'none';
    document.list_save_form.favorite_list_select.innerHTML = '';
	document.list_save_form.favorite_list_text.value = '';
    //document.getElementById('loginError').innerHTML = '&nbsp; Enter or select list name';

    document.getElementById('step3').style.display = 'none';
    //window.location = '/order/';
}

function favoriteListLogin() {
    webshop.callback = listLoginCallBack;
    document.getElementById('loginError').innerHTML = '';
    var email = document.list_login_form.userName.value;
    var password = document.list_login_form.password.value;
    var remember = document.list_login_form.remember.checked ? 1 : 0;
    webshop.favoriteListLogin(email, password, remember);
}

function favoriteListSave() {
    if (document.list_save_form.favorite_list_text.value == ''
        && document.list_save_form.favorite_list_select.value == '')
    {
        document.getElementById('saveError').innerHTML = '&nbsp; Enter or select list name';
    }
    else
    {
        //if (document.list_save_form.favorite_list_text.value != '')
        //    document.list_save_form.favorite_list_select.value == '';
        webshop.callback = listSaveCallBack;
        jQuery('#favorite_list_name').text( document.list_save_form.favorite_list_text.value ? document.list_save_form.favorite_list_text.value : document.list_save_form.favorite_list_select.options[document.list_save_form.favorite_list_select.selectedIndex].innerHTML);
        document.getElementById('saveError').innerHTML = '';
        var name = document.list_save_form.favorite_list_text.value;
        var list_id = document.list_save_form.favorite_list_select.value;
        webshop.favoriteListSave(name, list_id);
    }
}

function getAddress(address_id) {
   webshop.callback = getAddressCallBack;
   webshop.getAddress(address_id);
}

function clearAddressForm() {
    form = document.update_address_account;
    form.address_id.value = '';
    form.company_name.value = '';
	form.address_name.value = '';
    form.street.value = '';
    //form.number.value = '';
    //form.number_addition.value = '';
    form.postcode.value = '';
    form.city.value = '';
    form.country.value = '';
    form.note.value = '';
}

function clearProjectForm() {
    form = document.update_project_account;
    form.project_id.value = '';
    form.project_name.value = '';
    form.project_desc.value = '';
}

function getProject(project_id) {
   webshop.callback = getProjectCallBack;
   webshop.getProject(project_id);
}

function getCustomerAccount(customer_account_id) {
   ///document.getElementById('div-form').style.display = 'inline';
   webshop.callback = getCustomerAccountCallBack;
   webshop.getCustomerAccount(customer_account_id);
}

function clearCustomerAccountForm() {
    form = document.update_customer_account;
    form.customer_account_id.value = '';
    form.first_name.value = '';
    form.middle_name.value = '';
    form.last_name.value = '';
    form.gender[0].checked = true;
    form.email.value = '';
    form.phone.value = '';
    form.customer_account_type_id.value = '1';
    form.order_amount.value = '100';
}

function saveCustomerAccountForm(form) {
   if (!validateCustomerAccountForm(form))
       return false;

   var customer_account = new Array();
   customer_account['customer_account_id'] = form.customer_account_id.value;
   customer_account['first_name'] = form.first_name.value;
   customer_account['middle_name'] = form.middle_name.value;
   customer_account['last_name'] = form.last_name.value;
   if (form.gender[0].checked)
       customer_account['gender'] = form.gender[0].value;
   else
       customer_account['gender'] = form.gender[1].value;
   customer_account['email'] = form.email.value;
   customer_account['phone'] = form.phone.value;
   customer_account['customer_account_type_id'] = form.customer_account_type_id.value;
   customer_account['order_amount'] = form.order_amount.value;

   webshop.callback = saveCustomerAccountCallBack;
   webshop.saveCustomerAccount(customer_account);
}

function updateProductsScreen(url, categoryId, menuId)
{
   webshop.callback = updateProductsScreenCallBack;
   webshop.getCategoryProducts(url, categoryId, menuId);
}
function addToFavorite(id)
{
	webshop.callback = addFavoriteProductCallback;
	webshop.addFavoriteProducts(id);
}

function showPopupExplanation() {
    document.getElementById('step1').style.display = 'block';
}

function hidePopupExplanation() {
    tb_remove();
    document.getElementById('step1').style.display = 'none';
    document.explanation_form.user_name.value = '';
    document.explanation_form.phone.value = '';
    document.getElementById('inputError').innerHTML = '';

    document.getElementById('step2').style.display = 'none';
}

function explanationSend() {
    webshop.callback = explanationSendCallBack;
    document.getElementById('inputError').innerHTML = '';
    var user_name = document.explanation_form.user_name.value;
    var phone = document.explanation_form.phone.value;
    if (!user_name || !phone)
    {
        document.getElementById('inputError').innerHTML = 'Vul alle gegevens';
        return;
    }

    webshop.explanationSend(user_name, phone);
}

function showWorkSuggest() {
    document.getElementById('step1').style.display = 'block';
}

function hideWorkSuggest() {
    tb_remove();
    document.getElementById('step1').style.display = 'none';
    document.worksuggest_form.from_name.value = '';
    document.worksuggest_form.from_email.value = '';
	document.worksuggest_form.to_name.value = '';
	document.worksuggest_form.to_email.value = '';
	//document.worksuggest_form.comments.value = '';
    document.getElementById('inputError').innerHTML = '';

    document.getElementById('step2').style.display = 'none';
}

function sendWorkSuggest() {
    webshop.callback = worksuggestSendCallBack;
    document.getElementById('inputError').innerHTML = '';
    var from_name = document.worksuggest_form.from_name.value;
	var from_email = document.worksuggest_form.from_email.value;
	var to_name = document.worksuggest_form.to_name.value;
	var to_email = document.worksuggest_form.to_email.value;
	var comments = document.worksuggest_form.comments.value;
	var work_id = document.worksuggest_form.work_id.value;
    if (!from_name || !from_email || !to_name || !to_email || !checkEmail(from_email) || !checkEmail(to_email))
    {
        document.getElementById('inputError').innerHTML = 'Vul alle gegevens';
        return;
    }

    webshop.worksuggestSend(work_id, from_name, from_email, to_name, to_email, comments);
}

function sendWorkTypeSuggest() {
    webshop.callback = worksuggestSendCallBack;
    document.getElementById('inputError').innerHTML = '';
    var from_name = document.worksuggest_form.from_name.value;
	var from_email = document.worksuggest_form.from_email.value;
	var to_name = document.worksuggest_form.to_name.value;
	var to_email = document.worksuggest_form.to_email.value;
	var comments = document.worksuggest_form.comments.value;
	var work_id = document.worksuggest_form.work_id.value;
    if (!from_name || !from_email || !to_name || !to_email || !checkEmail(from_email) || !checkEmail(to_email))
    {
        document.getElementById('inputError').innerHTML = 'Vul alle gegevens';
        return;
    }

    webshop.worktypesuggestSend(work_id, from_name, from_email, to_name, to_email, comments);
}

function updateWizardScreen(categoryId, filters, step, sis)
{
	var activeFilter = {};
	jQuery('#filter-' + (step - 1) + ' input[@type=radio]').each(function(){
		if (this.checked)
		{
			activeFilter.name = 'filter' + this.name.toLowerCase();
			activeFilter.value = this.value;
		}
	});
	filters += activeFilter.name + ':' + activeFilter.value;
	webshop.callback = updateWizardScreenCallBack;
	webshop.getWizardContent(categoryId, filters, step, sis);
}

function updateWizardResultScreen(categoryId, filters, step, sis, skipFilter, page)
{
	if ( !page && !skipFilter )
	{
		var activeFilter = {};
		jQuery('#filter-' + (step - 1) + ' input[@type=radio]').each(function(){
			if (this.checked)
			{
				activeFilter.name = 'filter' + this.name.toLowerCase();
				activeFilter.value = this.value;
			}
		});
		filters += activeFilter.name + ':' + activeFilter.value;
	}
	webshop.callback = updateWizardResultScreenCallBack;
	webshop.getWizardResultContent(categoryId, filters, step, sis, !!skipFilter, page);
}