jQuery.noConflict();
jQuery(document).ready(init);

Cufon.replace( 'h1, h2, #navigation a' );
Cufon.replace( '#subnavigation a', { hover: { color: '#ad0e1b' } } );
Cufon.replace( 'a.gothic', { fontFamily: 'Ink Gothic Alt', hover: { color: '#ad0e1b' } } );
Cufon.replace( '.gothic h1, .gothic h2, h2.gothic, .gothic h3', { fontFamily: 'Ink Gothic Alt' } );

function init() {
  jQuery( '#navigation .current' ).append( '<div class="edge">' );
	jQuery( '#contact_form .submit' ).click( function() { postContactForm(); } );

	var inputs = jQuery( '#contact_form input' );
	if ( inputs.size() ) { autofill( inputs ); }

	var bildbank = jQuery( '#mb_start input' );
	if ( bildbank.size() ) { autofill( bildbank ); }

	// mb
	jQuery( '#mb_login_form .submit' ).click( function() { mbLoginDoLogin(); } );
	jQuery( '#mb_signup_form .submit' ).click( function() { mbLoginSignUp(); } );

	// ladies
	if (jQuery('#pastej_ladies').length) {
		jQuery('#pastej_ladies').siblings('div.flash_video_box').css({cssFloat: 'left'});
		jQuery('#pastej_ladies').siblings('div.flash_video_box').css({styleFloat: 'left'});
	}

	if (jQuery('#pastej-tips').length) {
		jQuery('#pastej-tips').siblings('div.flash_video_box').css({cssFloat: 'left'});
		jQuery('#pastej-tips').siblings('div.flash_video_box').css({styleFloat: 'left'});
		jQuery('#pastej-tips').next().css( { "width" : "460px" } );
	}

	jQuery( '#start .row' ).each( function() {
		var highest = 0;
		var columns = jQuery( this ).find( '.column' );

		columns.each( function() {
			var item = jQuery( this );
			if ( item.height() > highest )
				highest = item.height();
		} );

		columns.height( highest );
	} );
}


function mbLoginDoLogin() {

  var error = '';
	var username = jQuery("input#par_username").val();
  var passwd = jQuery("input#par_passwd").val();

  /*
	if(!username || username == 'Användarnamn') {
    error = 1;
    jQuery('#par_username').addClass('missing');
  } else {
    jQuery('#par_username').removeClass('missing');
  }
	*/

	if(username && username != 'Användarnamn' && (validateEmail(username))) {
		jQuery('#par_username').removeClass('missing');
  } else {
    error = 1;
    jQuery('#par_username').addClass('missing');
  }



  if(!passwd || passwd == 'Lösenord') {
    error = 1;
    jQuery('#par_passwd').addClass('missing');
  } else {
    jQuery('#par_passwd').removeClass('missing');
  }

  if(error == 1) {
    return false;
  } else {
    var dataString = '&par_username=' + username + '&par_passwd=' + passwd;
    doAjaxRequest('CoMeT_function=run_module&module=MediaBankPub&function=frontend&action=mb_login_do_login' + dataString, mbLoginDoLoginResponse);
  }
}

function mbLoginDoLoginResponse(html) {

	var html_response = html.split('|');

	if (html_response[0] == 'success') {

		/*
		jQuery('#mb_login_form_container').html(html_response[1]).show();
		jQuery('#mb_signup_form_container').hide();
		Cufon.refresh();
		*/
		window.location.href=self.location.href;
	} else {
		alert('Något gick fel.');
	}


}

function mbLoginSignUp() {

  var error = '';
	var name = jQuery("input#par_name").val();
  var email = jQuery("input#par_email").val();

  if(!name || name == 'Namn') {
    error = 1;
    jQuery('#par_name').addClass('missing');
  } else {
    jQuery('#par_name').removeClass('missing');
  }

  if (!email) {
    error = 1;
    jQuery('#par_email').addClass('missing');
  } else {
    if (validateEmail(email)) {
      jQuery('#par_email').removeClass('missing');
    } else {
      error = 1;
      jQuery('#par_email').addClass('missing');
    }
  }

  if(error == 1) {
    return false;
  } else {
    var dataString = '&par_name=' + name + '&par_email=' + email;
    doAjaxRequest('CoMeT_function=run_module&module=MediaBankPub&function=frontend&action=mb_login_sign_up' + dataString, mbLoginSignUpResponse);
  }

}

function mbLoginSignUpResponse(html) {

	var html_response = html.split('|');

	if (html_response[0] == 'success') {
		jQuery('#mb_signup_form_container').html(html_response[1]).show();
		Cufon.refresh();
	} else {
		alert('Något gick fel. Vänligen försök igen.');
	}
}



function autofill( inputs ) {
	inputs.each( function() {
		var item = jQuery( this ).addClass( 'empty' );
		item.data( 'default', item.val() );
	} );

	inputs.live( 'blur', function() {
	 var item = jQuery( this );
	 if ( item.val() == '' )
		 item.addClass( 'empty' ).val( item.data( 'default' ) );
	} );

	inputs.focus( function() {
	 var item = jQuery( this );
	 if ( item.val() == item.data( 'default' ) )
		 item.val( '' ).removeClass( 'empty' );
	} );
}

function resizeBlogFrame() {
	var height = jQuery( '#blogframe' ).contents().find( 'html' ).height();
  jQuery( '#blogframe' ).height( height );
}

function doAjaxRequest(pars, callback) {
  jQuery.ajax({
    type: "POST",
    url: "?",
    data: pars,
    success: callback
  });
}

function startCompetition() {
	doAjaxRequest(
		'CoMeT_function=run_module&module=Competition&function=what_are_they_saying&action=start_competition',
		startCompetitionResponse
	);
}

function startCompetitionResponse( html ) {
	jQuery( '#competition' ).html( html );
	submitEntry();
	jQuery( '#competition' ).css( 'background-image', 'url( "/site/pastejkoket/images/static/background.plain.png" )' );
}

function submitEntry() {
	jQuery( '#entry' ).submit( function() {
		if ( checkEntry() ) {
			var pars = jQuery( '#entry' ).serialize();
			doAjaxRequest('CoMeT_function=run_module&module=Competition&function=what_are_they_saying&action=submit_entry&' + pars , submitUserDetails );
		}
		return false;
	} );

	jQuery( '#competition_image textarea' ).focus( function() {
		jQuery( '#competition .begin' ).val( '1' );
		jQuery( this ).val( '' ).unbind( 'focus' ).keyup();
	} );

	jQuery( '#entry .submit' ).click( function() { jQuery( '#entry' ).submit(); } );

	var textarea   = jQuery( '#competition_image textarea' ),
	    characters = jQuery( '#characters .count' );

	textarea.keyup( function() {
		limit( textarea, count, 100 );
		var count = 100 - textarea.val().length;
		characters.html( count );
	} );

	function limit(field, count, limit) {
		if ( field.val().length > limit ) {
			field.val( field.val().substring(0, limit) );
		}
	}

	Cufon.refresh();
}

function hideError() {
	jQuery( '#error' ).find( '.close' ).unbind().end().hide();
}

function showError( txt ) {
	var err = jQuery( '#error' );
	err.show().find( '.close' ).click( function() {
		hideError();
	} );
	err.find( '.message' ).html( txt );
}

function checkEntry() {
	var error = '';

	if ( !jQuery( '#entry .quote' ).val().split(' ').join('').length || jQuery( '#entry .begin' ).val() == 0 )
		error += 'Fyll i bubblan';

	if ( !error.length ) {
		hideError();
		return true;
	}

	showError( error );
	return false;
}

function submitUserDetails( html ) {
	jQuery( '#competition' ).html( html );

	jQuery( '#details' ).submit( function() {
		if ( checkUserDetails() ) {
			var pars = jQuery( '#details' ).serialize();
			doAjaxRequest('CoMeT_function=run_module&module=Competition&function=what_are_they_saying&action=submit_user_details&' + pars , finishCompetition );
		}
		return false;
	} );

	jQuery( '#details .submit' ).click( function() {
		jQuery( '#details' ).submit();
	} );

	Cufon.refresh();

	var inputs = jQuery( '#details input[type=text]' );
	autofill( inputs );

	jQuery( '#competition .agreement' ).click( function() {
		var agreement = jQuery( '#agreement' ),
		    shadow    = jQuery( '#shadow' );

		var pos = jQuery( this ).position();
		agreement.css( { 'left' : pos.left, 'top' : pos.top - agreement.height() } );
		agreement.fadeIn( 400 );

		shadow.fadeTo( 400, 0.1 ).click( function() {
			agreement.fadeOut( 400 );
			shadow.fadeOut( 400 ).unbind( 'click' );
		} );

		jQuery( '#competition #agreement .close' ).click( function () {
			shadow.click();
		} );
	} );

	var checkbox = jQuery( '#competition .checkbox' );
	jQuery( '#competition .dummy' ).toggle( function() {
		checkbox.attr( 'checked', true );
		jQuery( this ).attr( 'src', '/site/pastejkoket/images/static/checkbox.true.png' );
	}, function() {
		checkbox.attr( 'checked', false );
		jQuery( this ).attr( 'src', '/site/pastejkoket/images/static/checkbox.false.png' );
	} );
}

function checkUserDetails() {
	var error   = '',
	    details = jQuery( '#details' );

	function val( selector ) {
		return details.find( selector ).val()
	}
	function len( selector ) {
		return val( selector ).length;
	}

	if ( val( '.name' ) == 'Namn' || !len( '.name' ) )
		error += 'Fyll i ditt namn<br />';

	if ( val( '.addr' ) == 'Adress' || !len( '.addr' ) )
		error += 'Fyll i din adress<br />';

	if ( val( '.phone' ) == 'Telefon' || !len( '.phone' ) )
		error += 'Fyll i ditt telefonnummer<br />';

	if ( val( '.mail' ) == 'Mejl' || !len( '.mail' ) || !validateEmail( val( '.mail' ) ) )
		error += 'Fyll i korrekt e-mail<br />';

	if ( val( '.postnum' ) == 'Postnr' || !len( '.postnum' ) )
		error += 'Fyll i ditt postnr<br />';

	if ( val( '.postaddr' ) == 'Postadress' || !len( '.postaddr' ) )
		error += 'Fyll i din postadress<br />';

	if ( val( '.prod1' ) == 'Produkt 1' || !len( '.prod1' ) )
		error += 'Fyll i Produkt 1<br />';

	if ( val( '.prod2' ) == 'Produkt 2' || !len( '.prod2' ) )
		error += 'Fyll i Produkt 2<br />';

	//if ( val( '.prod1' ) == val( '.prod2' ) )
		//error += 'Du måste ha två unika produktnummer<br />';

	if ( val( '.store' ) == 'Inköpsställe' || !len( '.store' ) )
		error += 'Fyll i inköpsställe<br />';

	if ( !details.find( '.checkbox' ).is( ':checked' ) )
		error += 'Du måste godkänna tävlingsvillkoren<br />';

	if ( !error.length ) {
		hideError();
		return true;
	}

	showError( error );
	return false;
}

function finishCompetition( html ) {
	if ( html.split('|')[0] == "error"  ) {
		showError( "Dina EAN-koder är inte giltiga" );
	}
	else {
		jQuery( '#competition' ).html( html );
		Cufon.refresh();
	}
}

function validateEmail(elementValue) {
	var emailPattern = /^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
	return emailPattern.test(elementValue);
}

function postContactForm() {

  var error = '';
  var name = jQuery("input#par_name");
  var email = jQuery("input#par_email");
  var phone = jQuery("input#par_phone");
  var message = jQuery("textarea#par_message");

  if(!name.val() || name.val() == name.data('default')) {
    error = 1;
    name.addClass('missing');
  } else {
    name.removeClass('missing');
  }

  if (!email.val()) {
    error = 1;
    email.addClass('missing');
  } else {
    if (validateEmail(email.val())) {
      email.removeClass('missing');
    } else {
      error = 1;
      email.addClass('missing');
    }
  }

  if(!message.val()) {
    error = 1;
    message.addClass('missing');
  } else {
    message.removeClass('missing');
  }

  if(error == 1) {
    return false;
  } else {
    var dataString = '&par_name=' + name.val() + '&par_email=' + email.val() + '&par_phone=' + phone.val() + '&par_message=' + message.val();
    doAjaxRequest('CoMeT_function=run_module&module=Forms&function=contact_form&action=process_form' + dataString, postContactFormResponse);
  }

}

function postContactFormResponse(html) {

  var html_response = html.split('|');

  if (html_response[0] == 'success') {
    jQuery('#contact_form_container').html(html_response[1]).fadeIn();
		Cufon.refresh();
  } else {
    jQuery('#contact_form_error').html(html_response[1]).fadeIn();
		Cufon.refresh();
  }
}

function share( object ){
	var link = "http://api.addthis.com/oexchange/0.8/";

	if ( object.forward == "twitter" ) {
		var url = "";
		switch( object.name ) {
			case "tio_mackor":
				url = "Har+din+leverpastejsm%c3%b6rg%c3%a5s+stannat+i+utvecklingen%3f+Testa+sm%c3%b6rg%c3%a5sklassikern+p%c3%a5+10+nya+goda+s%c3%a4tt+http%3a%2f%2fbit.ly%2fei8P6Q";
			break;
			case "jarntips":
				url = "Snabbaste%20guiden%20till%20j%C3%A4rnrik%20mat http://bit.ly/hDOm79";
			break;
			case "puls-o-meter":
				url = "Gillar%20du%20att%20tr%C3%A4na%20men%20inte%20r%C3%A4kna%3F%20Pulsmanicken%20r%C3%A4knar%20ut%20vilken%20tr%C3%A4ningspuls%20du%20ska%20ha%20f%C3%B6r%20att%20n%C3%A5%20ditt%20tr%C3%A4ningsm%C3%A5l http://bit.ly/guIARI";
			break;
			case "bmi_indikator":
				url = "Ser%20din%20rumpa%20stor%20ut%3F%20Fr%C3%A5ga%20v%C3%A5r%20BMI-kalkylator%20ist%C3%A4llet http://bit.ly/gWTY9P";
			break;
			case "jarnometer":
				url = "F%C3%A5r%20du%20i%20dig%20tillr%C3%A4ckligt%20med%20j%C3%A4rn%3F%20Kolla%20med%20v%C3%A5r%20enkla%20J%C3%A4rn-o-meter http://bit.ly/i12Dom";
			break;
			case "varfor_jarn":
				url = "Varf%C3%B6r%20%C3%A4r%20det%20s%C3%A5%20viktigt%20att%20%C3%A4ta%20j%C3%A4rn%3F%20V%C3%A4rldens%20mest%20pedagogiska%20f%C3%B6rklaringsmodell http://bit.ly/eWprBN";
			break;
		}

		window.open( "http://twitter.com/home?status=" + url );
	}
	else {
		link +=
			"forward/"      + object.forward + "/" +
			"offer?url="    + "http://www.pastejkoket.se" + location.pathname +
			"&title="       + object.title +
			"&description=" + object.description;

		window.open( link );
	}
}

function resizeSWF(nHeight) {
	nHeight += "px";
  jQuery("#jarnometer_outer").height(nHeight);
  jQuery("#jarnometer").height(nHeight);
}

function resize10SWF(nHeight) {
	nHeight += "px";
  jQuery("#tio_mackor_outer").height(nHeight);
  jQuery("#tio_mackor").height(nHeight);
}



/**
 * media bank
 *
 **/

var objectId = '';
function sortFiles(dir_id, object_id, order) {
  objectId = object_id;
  doAjaxRequest('CoMeT_function=run_module&module=MediaBankPub&function=frontend&action=sort_files&dir_id=' + dir_id + '&object_id=' + object_id + '&order=' + order, '#mb_files_' + objectId, updateFilesList);
}

function doMbSearch(object_id) {

  objectId = object_id;

  var dir_id = jQuery("input#mb_dir_id_" + object_id).val();
  var searchstring = jQuery("input#mb_searchstring_" + object_id).val();

  //if(searchstring) {
    var dataString = '&dir_id=' + dir_id + '&object_id=' + object_id + '&searchstring=' + searchstring
    doAjaxRequest('CoMeT_function=run_module&module=MediaBankPub&function=frontend&action=search_files' + dataString, '#mb_files_' + object_id, updateFilesList);
  //}
}


function updateFilesList(html) {
  jQuery('#mb_files_' + objectId).html(html);
}


function checkEnter(e, object_id) {
  var key;
  if (window.event) {
    key = window.event.keyCode; //IE
  } else {
    key = e.which;
  }
  if (key == 13) {
    doMbSearch(object_id);
    return false;
  }
  return true;
}

