var drag = false;
var color_r = '00';
var color_g = '00';
var color_b = '00';
var parent;

jQuery.noConflict();

function HideColorDlg(){
	jQuery('#color_dlg').hide();
}
function ShowColorDlg(){
	var p = jQuery(parent).offset();
	jQuery('#color_dlg').css({left:p.left, top:p.top + p.scrollTop});
	jQuery('#color_dlg').show();
	var v = jQuery(parent).attr('edit');
	var bg = jQuery('#'+v).val();
	if (bg.length == 6){
		color_r = bg.substr(0,2);
		color_g = bg.substr(2,2);
		color_b = bg.substr(4,2);
	} else if (bg.length == 3){
		color_r = bg.substr(0,1) + bg.substr(0,1);
		color_g = bg.substr(1,1) + bg.substr(1,1);
		color_b = bg.substr(2,1) + bg.substr(2,1);;
	} else {
		color_r = '00';
		color_g = '00';
		color_b = '00';
	}
	var x = dec(color_r);
	jQuery('#p1s').css('margin-left', (113*x)/255);	
	x = dec(color_g);
	jQuery('#p2s').css('margin-left', (113*x)/255);
	x = dec(color_b);
	jQuery('#p3s').css('margin-left', (113*x)/255);	
	jQuery('#p1').css('background-color', '#'+color_r+'0000');
	jQuery('#p2').css('background-color', '#00'+color_r+'00');
	jQuery('#p3').css('background-color', '#0000'+color_r);
	jQuery('#output').css('background-color', '#'+color_r+color_g+color_b);
}
function shooseColor(){
	var v = jQuery(parent).attr('edit');
	var bg = jQuery('#'+v).val(color_r+color_g+color_b);
	HideColorDlg();
	UpdateColors('#'+v);
	updateCode('#'+v)
}
function hex(i){
	var a = "0123456789ABCDEF";
	return a.charAt(i/16) + a.charAt(i%16);
}
function dec(i){
	i = i.toLowerCase();
	var a = Array();a['0'] = 0;a['1'] = 1;a['2'] = 2;a['3'] = 3;a['4'] = 4;a['5'] = 5;
	a['6'] = 6;a['7'] = 7;a['8'] = 8;a['9'] = 9;a['a'] = 10;a['b'] = 11;a['c'] = 12;
	a['d'] = 13;a['e'] = 14;a['f'] = 15;
	return (a[i.charAt(0)]) * 16 + a[i.charAt(1)];
}
jQuery(document).mousedown(function(){
	drag = true;
});
jQuery(document).mouseup(function(){
	drag = false;
});
jQuery('input').change(function(){
	updateCode(this);
});
jQuery('select').change(function(){	
	updateCode(this);
});
jQuery('input.choosecolor').keyup(function(){
	UpdateColors(this);
});
jQuery('div.choosecolor').click(function(e){
	parent = e.target;
	ShowColorDlg();
});
jQuery('.slide').mousemove(function(e){
	if (drag){		
		var x = e.pageX - jQuery(e.target).offset().left;		
		if (x > 113) x = 113;
		var a = jQuery(e.target).attr('id');
		jQuery('#'+a+'s').css('margin-left', x);
		c = (255 * x) / 113;
		c = hex(c>255?255:c);
		switch(a){
			case 'p1': color_r = c; jQuery(e.target).css('background-color', '#'+c+'0000'); break;
			case 'p2': color_g = c; jQuery(e.target).css('background-color', '#00'+c+'00'); break;
			case 'p3': color_b = c; jQuery(e.target).css('background-color', '#0000'+c); break;
		}
		jQuery('#output').css('background-color', '#'+color_r+color_g+color_b);
	}
});
function updateCode(obj){
	var code = "\<script\>";
	var t;
	t = jQuery('#limit').val(); if (t != '') code = code + '\n var hfmJokesLimit='+t+';';
	t = jQuery('#minlen').val(); if (t != '') code = code + '\n var hfmMinTextLength='+t+';';
	t = jQuery('#maxlen').val(); if (t != '') code = code + '\n var hfmMaxTextLength='+t+';';
	t1 = jQuery('#width').val(); if (t1 != '') code = code + '\n var hfmFrameWidth='+t1+';';
	t2 = jQuery('#height').val(); if (t2 != '') code = code + '\n var hfmFrameHeight='+t2+';';
	t3 = jQuery('#border').val(); if (t3 != '') code = code + '\n var hfmBorder='+t3+';';
	t4 = jQuery('#bordcolor').val(); if (t4 != '') code = code + '\n var hfmBorderColor=\''+t4+'\';';
	t5 = jQuery('#bgcolor').val(); if (t5 != '') code = code + '\n var hfmBgColor=\''+t5+'\';';
	t6 = jQuery('#font').val(); if (t6 != '') code = code + '\n var hfmFontFamily=\''+t6+'\';';
	t7 = jQuery('#fontsize').val(); if (t7 != '') code = code + '\n var hfmFontSize='+t7+';';
	t8 = jQuery('#captcolor').val(); if (t8 != '') code = code + '\n var hfmCaptionColor=\''+t8+'\';';
	t9 = jQuery('#jokecolor').val(); if (t9 != '') code = code + '\n var hfmFontColor=\''+t9+'\';';
	t0 = jQuery('#navcolor').val(); if (t0 != '') code = code + '\n var hfmNavColor=\''+t0+'\';';
	code = code + "\n\<\/script\>\n\<script src=\"http://www.humor.fm/js/context.js\"\>\<\/script\>";
	jQuery('#code_result').val(code);
	if (obj != undefined){	
		var attr = jQuery(obj).attr('id');
		switch (attr){
			case 'width': if (t1 != '') jQuery('#container').width(t1); else jQuery('#container').width('auto'); break;
			case 'height': if (t2 != '') jQuery('#container').height(t2); else jQuery('#container').height('auto');break;
			case 'border': jQuery('#container').css('border-width',t3+'px'); break;
			case 'bordcolor': if (t4 != '') jQuery('#container').css('border-color','#'+t4); else jQuery('#container').css('border-color',''); break;
			case 'bgcolor': if (t5 != '') jQuery('#container').css('background-color','#'+t5); else jQuery('#container').css('background-color',''); break;
			case 'font': 
				jQuery('#capt').css('font-family',t6); 
				jQuery('#captlink').css('font-family',t6); 
				jQuery('#joke').css('font-family',t6); 
				jQuery('#joke_author').css('font-family',t6); 
				jQuery('#navig').css('font-family',t6); 
				break;
			case 'fontsize':
				if (t7) jQuery('#capt').css('font-size',(parseInt(t7)+5)+'px'); else jQuery('#capt').css('font-size','');
				if (t7) jQuery('#captlink').css('font-size',(parseInt(t7)+5)+'px'); else jQuery('#captlink').css('font-size','');
				if (t7) jQuery('#joke').css('font-size',t7+'px'); else jQuery('#joke').css('font-size','');
				if (t7) jQuery('#joke_author').css('font-size',t7+'px'); else jQuery('#joke_author').css('font-size','');
				if (t7) jQuery('#navig').css('font-size',(parseInt(t7)-1)+'px'); else jQuery('#navig').css('font-size','');
				break;
			case 'captcolor':
				if (t8 != '') jQuery('#capt').css('color','#'+t8); else jQuery('#capt').css('color',''); 
				if (t8 != '') jQuery('#captlink').css('color','#'+t8); else jQuery('#captlink').css('color',''); 
				break;
			case 'jokecolor': if (t9 != '') jQuery('#joke').css('color','#'+t9); else jQuery('#joke').css('color',''); break;
			case 'navcolor': if (t0 != '') jQuery('#navig').css('color','#'+t0); else jQuery('#navig').css('color',''); break;
		}
	}
}
function UpdateColors(obj){
	var id = jQuery(obj).attr('id');
	var val = jQuery(obj).val();
	if (val != '') jQuery('#'+id+'_view').css('background-color','#'+val);
	else jQuery('#'+id+'_view').css('background-color','');
}
jQuery(document).ready(function(){
	UpdateColors('#bordcolor');
	UpdateColors('#bgcolor');
	UpdateColors('#captcolor');
	UpdateColors('#jokecolor');
	UpdateColors('#navcolor');
	updateCode();
});
