var params = {
    changedEl: "select",
    visRows: 4,
    scrollArrows: true
}
cuSel(params);
		

jQuery(document).ready(function(){
    $("table.cards td, ul.mmenu li").hover(
        function () {
            $(this).addClass("hover");
        },
        function () {
            $(this).removeClass("hover");
        });


    $(".item img.unselected").fadeTo("fast", 0.33);


    $(".item img.unselected").hover(
        function () {
            if ($(this).attr('class') == 'unselected') {
                $(this).fadeTo("slow", 1);
            }
        },
        function () {
            if ($(this).attr('class') == 'unselected') {
                $(this).fadeTo("slow", 0.33);
            }
        }
        );
});

function showpp(id) {
    $("#"+id).showPopup();
}
		
function hidepp(id) {
    $("#"+id).hidePopup();
}

var email_regexp = /^[\w\-\.]+@([\w\-]+\.)+[a-zA-Z]{2,4}$/;
var postcode_regexp = /^\d{4}$/;

var quote_id = 0;
var payment_amount = 0;

function copyContactToDelivery() {
    if (confirm('Are you sure? All existing data will be overwritten!')) {
        var fields = ['first_name', 'last_name', 'businessname', 'address', 'suburb',
        'state', 'postcode', 'email', 'phone'];
        for (var i=0; i<fields.length; i++) {
            $('input[name="member[delivery_'+fields[i]+']"]').val($('input[name="member['+fields[i]+']"]').val());
        }
    }
}

function validateMemberDetails() {
    var fields = ['first_name', 'last_name', 'address', 'suburb', 'state', 'postcode', 'email'];
    for (var i=0; i<fields.length; i++) {
        if ($('input[name="member['+fields[i]+']"]').val() == '') {
            alert('All required fields should be filled!');
            return false;
        }
    }
    if (!email_regexp.test($('input[name="member[email]"]').val())) {
        alert('Contact Email: Wrong Format!');
        return false;
    }
    if (!postcode_regexp.test($('input[name="member[postcode]"]').val())) {
        alert('Contact Postcode: Wrong Format! Use only numbers! Length should be 4 symbols!');
        return false;
    }
    return true;
}

function validateMemberAddress() {
    var fields = ['first_name', 'last_name', 'address', 'suburb', 'state', 'postcode'];
    for (var i=0; i<fields.length; i++) {
        if ($('input[name="address['+fields[i]+']"]').val() == '') {
            alert('All required fields should be filled!');
            return false;
        }
    }
    if (!postcode_regexp.test($('input[name="address[postcode]"]').val())) {
        alert('Contact Postcode: Wrong Format! Use only numbers! Length should be 4 symbols!');
        return false;
    }
}

function showPayment(type) {
    var types_ids = ['payment-bank-transfer', 'payment-visa-mastercard', 'payment-cheque', 'cash-on-collection'];
    for (var i in types_ids) {
        $('#'+types_ids[i]).hide();
    }
    $('#'+type).show();
}

function doPayment() {
    if (typeof($('input[name="payment_method"]:checked').val()) == 'undefined') {
        alert('Select one of payment method');
    }
    else {
        if ($('input[name="payment_method"]:checked').val() == 'visa_mastercard') {
           doPayPalPayment();
        }
        else {
            $('form[name="payment_form"]').submit();
        }
    }
}

function doPayPalPayment() {
    $('#loading').show();
    $.post( '/prices/order/paypalpro/', {
        quote_id:       quote_id,
        payment_amount: payment_amount,
        first_name:     $('input[name="payment[first_name]"]').val(),
        last_name:      $('input[name="payment[last_name]"]').val(),
        card_number:    $('input[name="payment[card_number]"]').val(),
        card_type:      $('input[name="payment[card_type]"]').val(),
        exp_date_month: $('input[name="payment[exp_date_month]"]').val(),
        exp_date_year:  $('input[name="payment[exp_date_year]"]').val(),
        cvv:            $('input[name="payment[cvv]"]').val(),
        address:        $('input[name="payment[address]"]').val(),
        suburb:         $('input[name="payment[suburb]"]').val(),
        postcode:       $('input[name="payment[postcode]"]').val(),
        state:          $('input[name="payment[state]"]').val()
    },
    function (data) {
        $('#loading').hide();
        var response = $.parseJSON(data);
        if (response.success == true) {
            $('form[name="payment_form"]').submit();
        }
        else {
            alert(response.message);
            return false;
        }
    });
}

function selectAddressType() {
    if ($('input[name="address_type"]:checked').val() != 'new_address') {
        $('#new_address_form').hide();
    }
    else {
        $('#new_address_form').show();
    }
    if ($('input[name="address_type"]:checked').val() != 'address_book') {
        $('input[name="selected_address"]').each(function(){
            $(this).attr('checked', false);
        });
    }
}

function setAddressBookType(type) {
    $('input[name="address_type"]').each(function(){
        if($(this).val() == type) {
            $(this).attr('checked', true);
        }
        else {
            $(this).attr('checked', false);
        }
    });
    selectAddressType();
}

function validateAddressGroup(group) {
    var fields = ['first_name', 'last_name', 'address', 'suburb', 'state', 'postcode'];
    for (var i=0; i<fields.length; i++) {
        if ($('input[name="'+group+'['+fields[i]+']"]').val() == '') {
            alert('All address fields should be filled!');
            return false;
        }
    }
    if (!postcode_regexp.test($('input[name="'+group+'[postcode]"]').val())) {
        alert('Postcode: Wrong Format! Use only numbers! Length should be 4 symbols!');
        return false;
    }
    return true;
}

function showArtworkOption(type) {
    var types_ids = ['artwork-uploaded', 'brief-uploaded', 'artwork-later'];
    for (var i in types_ids) {
        $('#'+types_ids[i]).hide();
    }
    if (type != 'skip-uploading') {
        $('#'+type).show();
    }
}

function doArtwork() {
    if (typeof($('input[name="artwork_type"]:checked').val()) == 'undefined') {
        alert('Select one of artwork options');
    }
    else {
        $('form[name="artwork_form"]').submit();
    }
}

function showLoginOption(type) {
    var types_ids = ['existing-member', 'new-member'];
    for (var i in types_ids) {
        $('#'+types_ids[i]).hide();
    }
    $('#'+type).show();
}

function validateDeliveryOptions() {
    if (typeof($('input[name="address_type"]:checked').val()) == 'undefined') {
        alert('You have to select address type before continue!');
        return false;
    }
    else if ($('input[name="address_type"]:checked').val() == 'billing') {
        var result = validateAddressGroup('member');
        if (!result) {
            return false;
        }
    }
    else if ($('input[name="address_type"]:checked').val() == 'address_book') {
        if (typeof($('input[name="selected_address"]:checked').val()) == 'undefined') {
            alert('You have to select address from address book!');
            return false;
        }
    }
    else if ($('input[name="address_type"]:checked').val() == 'new_address') {
        var result = validateAddressGroup('address');
        if (!result) {
            return false;
        }
    }
    return true;
}

function submitOrder() {
    if (typeof($('input[name="selected_quantity"]:checked').val()) == 'undefined') {
        alert('You have to select quantity before continue!');
        return false;
    }
    if (validateDeliveryOptions()) {
        $('form[name="oders_form"]').submit();
    }
}

function doQuoteAction(action, quote_id) {
    switch (action) {
        case 'order_now':
            document.location.href = '/prices/order/details/id/'+quote_id+'/';
            break;
        case 'pay_now':
            document.location.href = '/prices/order/payment/id/'+quote_id+'/';
            break;
        case 'download_quote':
            document.location.href = '/clients/profile/downloadquote/id/'+quote_id+'/';
            break;
        case 'download_invoice':
            document.location.href = '/clients/profile/downloadinvoice/id/'+quote_id+'/';
            break;
        case 'download_proof':
            document.location.href = '/clients/profile/downloadproof/id/'+quote_id+'/';
            break;
        case 'download_artwork':
            document.location.href = '/clients/profile/downloadartwork/id/'+quote_id+'/';
            break;
        case 'upload_artwork':
            document.location.href = '/clients/profile/uploadartwork/id/'+quote_id+'/';
            break;
        case 'send_email':
            document.location.href = '/clients/profile/quoteemail/id/'+quote_id+'/';
            break;
        case 're_quote':
        case 're_order':
            alert('Under construction!');
            break;
    }
}

function submitSampleRequestForm() {
    if (typeof($('input[name^="samples"]:checked').val()) == 'undefined' && $('input[name="custom_sample"]').val() == '') {
        alert('You have to select at least one option!');
    }
    else {
        if (validateDeliveryOptions()) {
            $('form[name="sample_form"]').submit();
        }
    }
}

function validateMemberShortDetails() {
    var fields = ['first_name', 'last_name', 'email'];
    for (var i=0; i<fields.length; i++) {
        if ($('input[name="member['+fields[i]+']"]').val() == '') {
            alert('All required fields should be filled!');
            return false;
        }
    }
    if (!email_regexp.test($('input[name="member[email]"]').val())) {
        alert('Contact Email: Wrong Format!');
        return false;
    }
    return true;
}

function submitOffer() {
    if(typeof($('input[name="user_authorized"]').val()) == 'undefined') {
        if (validateMemberShortDetails()) {
            $('#offer_form').submit();
        }
        else {
            return false;
        }
    }
    else {
        $('#offer_form').submit();
    }
}

function validateSampleDeliveryAddress() {
    if ($('input[name="request_sample"]:checked').val()) {
        return validateAddressGroup('address');
    }
    else {
        return true;
    }
}

function submitQuote(order) {
    if(typeof($('input[name="user_authorized"]').val()) == 'undefined') {
            if (validateMemberShortDetails()) {
                if (validateSampleDeliveryAddress()) {
                    if (typeof($('input[name="quote[quantities][]"]:checked').val()) != 'undefined') {
                        $('input[name="quote[data]"]').val($.toJSON(quote_data));
                        $('input[name="order"]').val(order);
                        $('#quote_form').submit();
                    }
                    else {
                        alert('Please select the quantities you are interested in.');
                        return false;
                    }
                }
            }
            else {
                return false;
            }
    }
    else {
        if (validateSampleDeliveryAddress()) {
            if (typeof($('input[name="quote[quantities][]"]:checked').val()) != 'undefined') {
                $('input[name="quote[data]"]').val($.toJSON(quote_data));
                $('input[name="order"]').val(order);
                $('#quote_form').submit();
            }
            else {
                alert('Please select the quantities you are interested in.');
                return false;
            }
        }
    }
}

function setHistoryLimit() {
    window.location.href = '/clients/profile/history/limit/'+$('#num_per_page').val()+'/';
}

function setHistoryLimitAndPage() {
    window.location.href = '/clients/profile/history/start/'+$('#pages_selector').val()+'/limit/'+$('#num_per_page').val()+'/';
}

function setVouchersLimit() {
    window.location.href = '/clients/profile/vouchers/limit/'+$('#num_per_page').val()+'/';
}

function setVouchersLimitAndPage() {
    window.location.href = '/clients/profile/vouchers/start/'+$('#pages_selector').val()+'/limit/'+$('#num_per_page').val()+'/';
}

function setReferralsLimit() {
    window.location.href = '/clients/profile/referrals/limit/'+$('#num_per_page').val()+'/';
}

function setReferralsLimitAndPage() {
    window.location.href = '/clients/profile/referrals/start/'+$('#pages_selector').val()+'/limit/'+$('#num_per_page').val()+'/';
}

var grid_hided = false;
var portfolio_items = {};
function showProductPortfolio(id) {
    if (!grid_hided) {
        grid_hided = true;
        $('#products-list-images').hide();
        $('#portfolio-holder').removeClass('product-selector');
        $('#products-list').show();
        $('#portfolio-item-holder').show();
        $('#portfolio-holder').css('background', 'transparent');
    }
    $('.portfolio-product-link').css('color', '#696e37');
    $('#portfolio-product-link-'+id).css('color', '#b6c428');
    $('#portfolio-item-holder').html('<div class="cform"><div class="row loading" style="display: block;">LOADING...<br />Please wait for available portfolio items.</div></div>');
    if (typeof(portfolio_items[id]) == 'undefined') {
        $.post( '/portfolio/portfolio/getitems/', {
            product_id:      id
        },
        function (data) {
            var response = $.parseJSON(data);
            portfolio_items[id] = response.data;
            populateProductDesigns(id);
        });
    }
    else {
        populateProductDesigns(id);
    }
}
function populateProductDesigns(id) {
    var html = '<p style="text-align: center;"><a href="javascript:;" onclick="showpp(\'popup-image\');"><img src="#" id="portfolio-item-image" alt="No Image" /></a></p>';
    html += '<p style="text-align: center;" id="portfolio-items-links"></p>';
    html += '<p style="font-weight: bold; margin-top: 5px;" id="portfolio-item-title"></p>';
    html += '<p style="" id="portfolio-item-description"></p>';
    $('#portfolio-item-holder').html(html);
    if (portfolio_items[id].length == 0 || typeof(portfolio_items[id]) == 'undefined') {
        $('#portfolio-item-holder').html('No portfolio items for selected product type!');
        return;
    }
    else if (portfolio_items[id].length > 1) {
        html = '';
        for (var i in portfolio_items[id]) {
            i = parseInt(i);
            html += '<a href="javascript:;" onclick="showPortfolioItem('+id+', '+(i+1)+');" class="portfolio-item-link" id="portfolio-item-link-'+(i+1)+'">'+(i+1)+'</a>';
            if (i < portfolio_items[id].length-1) {
                html += ' | ';
            }
        }
        $('#portfolio-items-links').html(html);
    }
    showPortfolioItem(id, 1);
}

function showPortfolioItem(product_id, id) {
    if (portfolio_items[product_id].length > 1) {
        $('.portfolio-item-link').css('color', '#696e37');
        $('#portfolio-item-link-'+id).css('color', '#b6c428');
    }
    var item = portfolio_items[product_id][parseInt(id)-1];
    $('#portfolio-item-image').attr('src', '/images/portfolio/middle/item_'+item.id+'.png');
    $('#portfolio-item-title').html(item.title);
    var description = item.description;
    if (item.businessname.length > 0) {
        description += '<br /><i>Created for '+item.businessname+'</i>';
    }
    $('#portfolio-item-description').html(description);
    $('#portfolio-item-image-fullsize').attr('src', '/images/portfolio/fullsize/item_'+item.id+'.png');
    $('#portfolio-item-title-fullsize').html(item.title);
    $('#portfolio-item-description-fullsize').html(description);
}

function insertYouTubeVideo() {
    $('#youtube-video').html('<iframe width="483" height="305" src="http://www.youtube.com/embed/eh7BPDvjkUs?rel=0&start=1&autoplay=1" frameborder="0" allowfullscreen></iframe>');
}

$(function() {     
    $('a.target_blank').click(function(e) {
        e.preventDefault();         
        window.open($(this).attr('href')); 		
    }); 
});
