var page_class = new Class({
	Implements: [Options],
	/* standart egenskap */
	options: {
		under_menu						: null
	},

	sub_menu_hide_delay					: 0,
	sub_menu_page_id                    : 0,

	visible_box_id						: '',
	flash_obj							: null,

	page_laoded	: false,
	dom_ready	: false,

	/* - log in variables */
	login_menu_dom 	: null,
	login_bt_dom 	: null,
	forgot_bt_dom 	: null,
	nm_inpt_dom		: null,
	psw_inpt_dom	: null,
	usr_msg_dom		: null,
	/* - loged in user form variables */
	loged_in_cont	: null,
	log_out_bt_dom	: null,

	/* -- constructor -- */
	initialize		: function($options){
		this.setOptions($options);
		window.addEvent('load', this.page_loaded.bind(this));
		window.addEvent('domready', this.dom_ready.bind(this));
		window.addEvent('allLoaded', this.allLoaded.bind(this));
	},
	dom_ready: function(){
		this.dom_ready = true;
		/* - intranett dom init */
		this.login_dom = $('login-menu');
		this.login_bt_dom = $('login-bt');
		this.forgot_bt_dom = $('forgot-bt');
		this.nm_inpt_dom = $('usr-nm-intp');
		this.psw_inpt_dom = $('usr-psw-intp');
		this.usr_msg_dom = $('login-usr-msg-cont');
		this.loged_in_cont = $('loged-user-wr');
		this.log_out_bt_dom = $('logout-bt');
		if (this.login_dom != null){
			this.login_dom.addEvent('click', this.prepare_login_form.bind(this));
			$('login-cont').setStyle('display', 'block');
			this.login_dom.setStyle('display', 'block');
		}
		if (this.loged_in_cont != null){
			this.loged_in_cont.setStyle('display', 'block');
			$('login-cont').setStyle('display', 'block');
			this.log_out_bt_dom.addEvent('click', this.do_logout.bind(this));
		}
		/* & intranett dom init */
		if (this.page_laoded == true && this.dom_ready == true) window.fireEvent('allLoaded');
	},
	page_loaded: function(){
		this.page_laoded = true;
		if (this.page_laoded == true && this.dom_ready == true) window.fireEvent('allLoaded');
	},
	allLoaded		: function(){
		if ($('page-action-print')){
			$('page-action-print').setStyle('display', 'block');
			$('page-action-print').removeEvents('click');
			$('page-action-print').addEvent('click', this.standart_print_action.bind(this));
		}
	},
	/* - intranett functions */
	prepare_login_form: function(){
		this.login_dom.setStyle('display', 'none');
		$('login-form-wr').setStyle('display', 'block');
		if (this.login_bt_dom != null){
			this.login_bt_dom.addEvent('click', this.do_login.bind(this));
		}
		if (this.forgot_bt_dom != null){
			this.forgot_bt_dom.addEvent('click', this.do_forgot_psw.bind(this));
		}
	},
	do_logout: function(){
		var jsonRequest = new Request.JSON({url: EDIT_CORE.JSSiteRoot + "site/user/action.php", onSuccess: function(person){
			document.location.href= EDIT_CORE.JSSiteRoot;
		}.bind(this)}).get({'action': 'usr_logout', 'page_id': EDIT_CORE.page_id});
	},
	do_login: function (){
		if (this.nm_inpt_dom.getProperty('value') == 'E-postadresse' || this.psw_inpt_dom.getProperty('type') == 'text'){
			var _usr_msg = '';
			if (this.nm_inpt_dom.getProperty('value') == 'E-postadresse'){
				this.nm_inpt_dom.tween('border-color', '#c70c47');
				if (this.psw_inpt_dom.getProperty('type') == 'text'){
					_usr_msg = 'Manglende e-postadresse og passord.';
					this.psw_inpt_dom.tween('border-color', '#c70c47');
				} else {
					_usr_msg = 'Manglende e-postaddrese.';
				}
			} else {
				_usr_msg = 'Manglende passord.';
				this.psw_inpt_dom.tween('border-color', '#c70c47');
			}
			this.usr_msg_dom.set('html', _usr_msg);
			(function(){
				this.usr_msg_dom.set('html', '');
				this.nm_inpt_dom.setStyle('border-color', '');
				this.psw_inpt_dom.setStyle('border-color', '');
			}).delay(3000, this);
		} else {
			var jsonRequest = new Request.JSON({url: EDIT_CORE.JSSiteRoot + "site/user/action.php", onSuccess: function(person){
				//$$('#pr_pic_cont_'+kampanje_produkt_id+' img')[0].setProperty('src', EDIT_CORE.JSSiteRoot + answer.info.pr_pic);
				if (parseInt(person.info.user_id) > 0){
					//this.usr_msg_dom.set('html', 'Velkomen!!');
					document.location.reload();
				} else {
					this.usr_msg_dom.set('html', 'Oppgit brukernavn eller passord er feil.');
					(function(){
						this.usr_msg_dom.set('html', '');
						this.nm_inpt_dom.setStyle('border-color', '');
						this.psw_inpt_dom.setStyle('border-color', '');
					}).delay(3000, this);
				}
			}.bind(this)}).get({'action': 'usr_login', 'page_id': EDIT_CORE.page_id, 'txf_brukernr':this.nm_inpt_dom.getProperty('value'), 'txf_passord':this.psw_inpt_dom.getProperty('value')});
		}
	},
	do_forgot_psw: function (){
		if (this.nm_inpt_dom.getProperty('value') == 'E-postadresse'){
			this.nm_inpt_dom.tween('border-color', '#c70c47');
			this.usr_msg_dom.set('html', 'Du må skrive e-posten din.');
			(function(){
				this.usr_msg_dom.set('html', '');
				this.nm_inpt_dom.setStyle('border-color', '');
			}).delay(3000, this);
		} else {
			var jsonRequest = new Request.JSON({url: EDIT_CORE.JSSiteRoot + "site/user/action.php", onSuccess: function(status){
				//if (status)
				//$$('#pr_pic_cont_'+kampanje_produkt_id+' img')[0].setProperty('src', EDIT_CORE.JSSiteRoot + answer.info.pr_pic);
				this.usr_msg_dom.set('html', 'Buker navn og passord ble sendt.');
				(function(){
					this.usr_msg_dom.set('html', '');
					this.nm_inpt_dom.setStyle('border-color', '');
					this.psw_inpt_dom.setStyle('border-color', '');
				}).delay(3000, this);
			}.bind(this)}).get({'action': 'forgot_psw', 'page_id': EDIT_CORE.page_id, 'txf_brukernr': this.nm_inpt_dom.getProperty('value')});
		}
	},
	/* & intranett functions */

	show_pr: function($pr_list){
        if ($('page-action-print') != null){
		    $('page-action-print').setStyle('display', 'block');
		    $('page-action-print').removeEvents('click');
		    $('page-action-print').addEvent('click', $pr_list.produkt_list[$pr_list.active_product].print_product.bind($pr_list.produkt_list[$pr_list.active_product]));
        }
	},
	show_pr_list: function($pr_list){
        if ($('page-action-print') != null){
		    $('page-action-print').removeEvents('click');
		    //$('page-action-print').addEvent('click', $pr_list.print_visible_list.bind($pr_list));
		    $('page-action-print').setStyle('display', 'none');
        }
	},
	standart_print_action: function(){
		EDIT_CORE.print_page('page-content-wp');
	},
	flash_loaded	: function(json){
		var json_obj =  JSON.decode(json);
		this.flash_obj = new page_flash_class({'xml_info' : json_obj, 'flash_id': flash_id});
		if (Browser.Engine.trident){
			this.flash_obj.flash_mover();
		} else {
			flash_ref['onFlashMover'] = this.flash_obj.flash_mover.bind(this.flash_obj);
			flash_ref['onFlashMout'] =  this.flash_obj.flash_mout.bind(this.flash_obj);
		}
		flash_ref['onPicChange'] =  this.flash_obj.switch_pic.bind(this.flash_obj);
	},
	show_sub_menu: function($page_id){
		if (this.sub_menu_hide_delay != 0){
			$clear(this.sub_menu_hide_delay);
			this.sub_menu_hide_delay = 0;
			if (this.sub_menu_page_id != $page_id) this.hide_sub_menu(this.sub_menu_page_id);
			else return;
		}
		$('sub-menu-wr-'+ $page_id).setStyle('display', 'block');
		this.sub_menu_page_id = $page_id;
	},
	delay_hide_menu: function($page_id){
		this.sub_menu_hide_delay = this.hide_sub_menu.delay(250, this, $page_id);
	},
	hide_sub_menu: function($page_id){
		$('sub-menu-wr-'+ $page_id).setStyle('display', 'none');
		this.sub_menu_hide_delay = 0;
	}
});



var page_flash_class = new Class({
	Implements: [Options],
	/* standart egenskap */
	options: {


	},

	flash_DOM							: null,
	flash_nx_DOM						: null,
	flash_pr_DOM						: null,
	min_box_size						: {x:0, y:0},


	//text_bg_DOM 						: null,
	//text_lines_array 					: new Array(),
	current_pic							: 0,
	max_text_lines 						: 10,
	total_pic 							: 0,
	current_pic 						: 0,
	locked_pic 							: { '0' : true},


	/* -- constructor -- */
	initialize		: function($options){
		this.setOptions($options);
		this.total_pic = parseInt(this.options.xml_info.totalImg);
		if (this.total_pic > 0){
			this.flash_pr_DOM = $('pr_image_div').getElement('div');
			this.flash_pr_DOM.addEvent('click', this.flash_goto_pr_image.bind(this));
			this.flash_nx_DOM = $('nx_image_div').getElement('div');
			if (Browser.Engine.trident == false){
				this.flash_pr_DOM.setStyles({'display': 'block', 'opacity' : '0.4'});
				this.flash_nx_DOM.setStyles({'display': 'block', 'opacity' : '0.4'});
				$('pr_image_div').setStyles({'display': 'block', 'opacity' : '0.4'});
				$('nx_image_div').setStyles({'display': 'block', 'opacity' : '0.4'});
			} else {
				this.flash_pr_DOM.setStyles({'display': 'block'});
				this.flash_nx_DOM.setStyles({'display': 'block'});
				$('pr_image_div').setStyles({'display': 'block'});
				$('nx_image_div').setStyles({'display': 'block'});
			}
			this.flash_nx_DOM.addEvent('click', this.flash_goto_next_image.bind(this));
		}
		if (EDIT_CORE.page_loaded == 1){
			this.init_flash();
		} else window.addEvent('load', this.init_flash.bind(this));
	},

	init_flash			: function(){
		//alert(this.options.flash_id);
		this.flash_DOM = $(this.options.flash_id);
		this.flash_DOM.set_easing('back.easeOut');
		/*this.text_bg_DOM = $('img_text_wr');
		this.min_box_size = this.text_bg_DOM.getSize();//$$('.hard_field')[0].getSize();

		this.make_line(3, 'img_text_text');
		for (var $i = 0; $i < this.max_text_lines; $i ++){
			this.make_line(1, 'img_text_text');
		}
		this.lay_down_text(this.flash_DOM.get_tag_value(this.current_pic, 'img_text'), this.flash_DOM.get_tag_value(this.current_pic, 'img_link'));
		$('img_text_box').setStyle.delay(500, $('img_text_box'), ['visibility', 'visible']);*/
	},

	flash_goto_pr_image	: function(){
		if (this.flash_DOM.pr_image('fadeOutFadeIn')) {
			if (this.current_pic - 1 > 0) this.switch_pic(this.current_pic - 1);
			else this.switch_pic(0);
		}
	},
	flash_goto_next_image	: function(){
		if (this.flash_DOM.next_image('fadeOutFadeIn')) {
			if (this.current_pic + 1 < this.total_pic) this.switch_pic(this.current_pic + 1);
			else this.switch_pic(0);
		}
	},
	flash_mover	: function(){
		this.flash_pr_DOM.tween('opacity', '1');
		this.flash_nx_DOM.tween('opacity', '1');
	},
	flash_mout	: function(){
		this.flash_pr_DOM.tween('opacity', '0.4');
		this.flash_nx_DOM.tween('opacity', '0.4');
	},

	switch_pic : function (ind){
		if (this.locked_pic[ind] == true) return;
		this.locked_pic[this.current_pic] = false;
		this.locked_pic[ind] = true;
		this.current_pic = ind;
		//this.lay_down_text(this.flash_DOM.get_tag_value(ind, 'img_text'), this.flash_DOM.get_tag_value(ind, 'img_link'));
	},
	goto_pic 	: function (ind){
		if (this.locked_pic[ind] == true) return;
		this.flash_DOM.stop_auto_play();
		this.flash_DOM.set_easing('Quint.easeOut');
		//var _transition_name = 'h_blinds_left';
		//if (ind > this.current_pic) 	_transition_name = 'h_blinds_right';
		if (this.flash_DOM.goto_image(ind)) this.switch_pic(ind);
	},
	make_line	: function ($padding, $class_name){
		var text_cont = $('img_text_wr');
		var padding_div = new Element('div', {'html' : '&nbsp;', styles:{'height': '0px', 'display':'none', 'overflow':'hidden', 'padding-top': $padding+'px'}});
		var text_div = new Element('div', {'class': $class_name});
		var text_div_div = new Element('div');
		text_div_div.inject(text_div);
		padding_div.inject(text_cont);
		text_div.inject(text_cont);
		this.text_lines_array.push({'padding-div': padding_div, 'main':text_div, 'sub':text_div_div});
	},
	lay_down_text	: function (text, link){
		var clean_text = text.replace('<p>', '').replace('</p>', '');
		var lines = clean_text.split('<br />');
		if (lines.length == 1) lines = clean_text.split('<br/>');
		if (lines.length == 1) lines = clean_text.split('<br>');
		if (lines.length == 1) lines = clean_text.split('\n');
		if (lines.length > 1 || clean_text != '') {
			if (this.max_text_lines < lines.length){
				for (var $i = lines.length; $i < lines.length; $i ++){
					make_line(1, 'img_text_text');
				}
				this.max_text_lines = lines.length;
			}
			this.text_bg_DOM.setStyles({'display': 'block'});
			//this.text_bg_DOM.setStyles({'height' : parseInt(this.min_box_size.y) + 'px', 'width': parseInt(this.min_box_size.x)+0+'px'});
		} else {
			//this.text_bg_DOM.setStyle('display','none');
			 this.text_bg_DOM.morph({'height' : parseInt(this.min_box_size.y) + 'px', 'width': parseInt(this.min_box_size.x)+0+'px'});
		}
		var time_offset = 0;
		for (var $i = 0; $i < lines.length || $i < this.text_lines_array.length; $i ++){
			if ($i < lines.length && lines[$i] != ''){
				this.text_lines_array[$i].main.setStyle('display', 'block');
				this.text_lines_array[$i]['padding-div'].setStyle('display', 'block');
				if ($i == 0){
					this.animate_text(lines[$i], this.text_lines_array[$i], $i);
				} else {
					this.text_lines_array[$i].main.setStyles({'width': '1px', 'display':'none'});
					time_offset += lines[$i].length * 25;
					this.animate_text.delay(time_offset, this, [lines[$i], this.text_lines_array[$i], $i]);
				}

			} else {
				this.text_lines_array[$i].main.setStyle('display', 'none');
				this.text_lines_array[$i]['padding-div'].setStyle('display', 'none');
			}
		}
	},
	animate_text	: function (text, text_DOM, $i, link){
		text_DOM.sub.set('html', text);
		text_DOM.sub.setStyles({'opacity': 0, 'display':'block', 'width':'auto', 'visibility':'hidden'});
		text_DOM.main.setStyles({'width': '5000px', 'display':'block', 'opacity': 0, 'overflow' : 'hidden', 'position': 'absolute'});
		var main_text_size = text_DOM.sub.getSize();
		text_DOM.sub.setStyles({'opacity': 1, 'display':'inline', 'width':parseInt(main_text_size.x)+'px', 'visibility':'visible'});
		text_DOM.main.setStyles({'width': '1px', 'display':'block', 'opacity': 1, 'position':'static'});
		var text_bg_DOM_size = this.text_bg_DOM.getSize();
		var new_height = parseInt(text_bg_DOM_size.y) + parseInt(main_text_size.y);
		if ($i == 0) new_height = parseInt(this.min_box_size.y) + parseInt(main_text_size.y);
		this.text_bg_DOM.morph({'height' : new_height+'px', 'width':  (parseInt(this.min_box_size.x) > parseInt(main_text_size.x)?parseInt(this.min_box_size.x):parseInt(main_text_size.x))+'px'});
		text_DOM.main.tween.delay(240, text_DOM.main, ['width', (parseInt(main_text_size.x)) + 'px']);
	},
	fp_menu_text_menu_mover	:function ($elem, ind){
		if (this.locked_pic[ind] == true) return;
		//$elem.morph({'background-position': '0px 0px', 'color' : '#ec7311'});
		//$elem.getElement('span.num').tween( 'color' , '#ec7311');
		//$elem.tween('background-position', '0px 0px');
	},
	fp_menu_text_menu_mout	: function ($elem, ind){
		if (this.locked_pic[ind] == true) return;
		//$elem.morph({'background-position': '0px 40px', 'color' : '#6d6d6d'});
		//$elem.getElement('span.num').tween( 'color' , '#3d3e3e');
		//$elem.tween('background-position', '0px 40px');
	},
	flash_xml_parsed_handler	:function (info_json){
		var param_obj = JSON.decode(info_json);
		total_pic = param_obj.totalImg
		if (doc_loaded == false) lay_text = true;
		//else lay_down_text(flash_DOM.get_tag_value(current_pic, 'img_text'), flash_DOM.get_tag_value(current_pic, 'img_link'));
	}
});


var page_handler = new page_class();
var flash_ref = {
	'onXmlParsed' :page_handler.flash_loaded.bind(page_handler)
};

