ملاحظة: بعد الحفظ، قد يلزمك إفراغ الكاش لرؤية التغييرات.

// <nowiki>
// If FriendlyConfig aint exist.
if( typeof( FriendlyConfig ) == 'undefined' ) {
	FriendlyConfig = {};
}

/**
 FriendlyConfig.summaryAd ( string )
 If ad should be added or not to summary, default [[وب:فرندلي|فرندلي]]
 */
if( typeof( FriendlyConfig.summaryAd ) == 'undefined' ) {
	FriendlyConfig.summaryAd = " باستخدام [[وب:فرندلي|فرندلي]]";
}

/**
 FriendlyConfig.markSharedIPAsMinor ( boolean )
 */
if( typeof( FriendlyConfig.markSharedIPAsMinor ) == 'undefined' ) {
	FriendlyConfig.markSharedIPAsMinor = true;
}

$(friendlyshared);

function friendlyshared() {
	if( wgNamespaceNumber == 3 && isIPAddress( wgTitle ) ) {
		var username = wgTitle.split( '/' )[0].replace( /\"/, "\\\""); // only first part before any slashes

		mw.util.addPortletLink( 'p-cactions', "javascript:friendlyshared.callback(\"" + username + "\")", "آي بي مشترك", "friendly-shared", "إضافة وسم للآي بي المشترك", "");
	}
}

friendlyshared.callback = function friendlysharedCallback( uid ) {
	var Window = new SimpleWindow( 600, 400 );
	Window.setTitle( "اختر قالب لعنوان اللآي بي المشترك" ); 
	var form = new QuickForm( friendlyshared.callback.evaluate );

	form.append( { type:'header', label:'قوالب اللآي بي المشترك' } );
	form.append( { type: 'radio', name: 'shared', list: friendlyshared.standardList,
		event: function( e ) {
			friendlyshared.callback.change_shared( e );
			e.stopPropagation();
		} } );

	var org = form.append( { type:'field', label:'املأ صاحب الآي بي المشترك، المضيف و معلومات الاتصال (إن وجد) واضغط على \"أرسل\"' } );
	org.append( {
			type: 'input',
			name: 'organization',
			label: 'اسم المؤسسة',
			disabled: true,
			tooltip: 'بعض هذه القوالب تدعم نطاقا اختياريا لاسم المؤسسة التي تملك/تدير عنوان الآي بي. يمكن إضافة اسم المؤسسة هنا لتلك القوالب.'
		}
	);
	org.append( {
			type: 'input',
			name: 'host',
			label: 'اسم المضيف (اختياري)',
			disabled: true,
			tooltip: 'هذه القوالب تدعم نطاقا اختياريا لاسم المضيف. يمكن كتابة اسم المضيف (مثلا، proxy.example.com) هنا وسيتم وصله بالقالب.'
		}
	);
	org.append( {
			type: 'input',
			name: 'contact',
			label: 'معلومات الاتصال (عند الطلب فقط)',
			disabled: true,
			tooltip: 'بعض هذه القوالب تدعم نطاقا اختياريا لمعلومات الاتصال بالمؤسسة. استخدم هذا النطاق فقط عندما تطلب المؤسسة اضافة هذه المعلومات. يمكن اضافة معلومات الاتصال هنا.'
		}
	);
	
	form.append( { type:'submit', label:'أرسل' } );

	var result = form.render();
	Window.setContent( result );
	Window.display();
}

friendlyshared.standardList = [
	{
		label: '{{sharedip}}: قالب آي بي مشترك',
		value: 'sharedip',
		tooltip: 'قالب نقاش الآي بي يوضح معلومات مفيدة لمستخدمي الآي بي و من يريد تحذيرهم أو منعهم من المساهمة' },
	{ 
		label: '{{sharedipedu}}: قالب آي بي مشترك للمؤسسات التعليمية',
		value: 'sharedipedu' },
	{
		label: '{{sharedippublic}}: قالب آي بي مشترك للمحطات العامة',
		value: 'sharedippublic' },
	{
		label: '{{sharedipusmilitary}}: قالب آي بي مشترك للجيش الأمريكي',
		value: 'sharedipusmilitary' },
	{
		label: '{{dynamicip}}: قالب آي بي مشترك لمؤسسات ذات عنونة دينامكية',
		value: 'dynamicip' },
	{ 
		label: '{{isp}}: قالب آي بي مشترك لمزودي خدمة الإنترنت',
		value: 'isp' },
	{ 
		label: '{{mobileip}}: قالب آي بي مشترك لشركات الهواتف المحمولة و زبائنهم',
		value: 'mobileip' }
]

friendlyshared.callback.change_shared = function friendlytagCallbackChangeShared(e) {
	if( e.target.value == 'sharedipedu' ) {
		e.target.form.contact.disabled = false;
	} else {
		e.target.form.contact.disabled = true;
	}
	e.target.form.organization.disabled=false;
	e.target.form.host.disabled=false;
}

friendlyshared.callbacks = {
	main: function( self ) {
		var form = self.responseXML.getElementById( 'editform' );
		var found = false;
		var text = '{{';

		for( var i=0; i < friendlyshared.standardList.length; i++ ) {
			tagRe = new RegExp( '(\{\{' + friendlyshared.standardList[i].value + '(\||\}\}))', 'im' );
			if( tagRe.exec( form.wpTextbox1.value ) ) {
				Status.info( 'ملاحظة', 'تم العثور على {{' + friendlyshared.standardList[i].value + '}} موجودة على صفحة نقاش المستخدم...يتم ايقاف العمل' );
				found = true;
				text = form.wpTextbox1.value;
			}
		}
		
		if( !found ) {
			Status.info( 'ملاحظة', 'سيتم إضافة قالب الآي بي المشترك في أعلى صفحة نقاش المستخدم.' );
			text += self.params.value + '|' + self.params.organization;
			if( self.params.value == 'sharedipedu' && self.params.contact != '') {
				text += '|' + self.params.contact;
			}
			if( self.params.host != '' ) {
				text += '|host=' + self.params.host;
			}
			text += '}}\n\n' + form.wpTextbox1.value;
		}
		
		var postData = {
			'wpMinoredit': FriendlyConfig.markSharedIPAsMinor ? 1 : undefined,
			'wpWatchthis': form.wpWatchthis.checked ? 1 : undefined,
			'wpStarttime': form.wpStarttime.value,
			'wpEdittime': form.wpEdittime.value,
			'wpAutoSummary': form.wpAutoSummary.value,
			'wpEditToken': form.wpEditToken.value,
			'wpSummary': 'إضافة قالب \{\{[[Template:' + self.params.value + '|' + self.params.value + ']]\}\} في صفحة نقاش المستخدم.' + FriendlyConfig.summaryAd,
			'wpTextbox1': text
		};
 
		self.post( postData );
	}
}

friendlyshared.callback.evaluate = function friendlysharedCallbackEvaluate(e) {
	var shared = e.target.getChecked( 'shared' );
	if( !shared || shared.length <= 0 ) {
		alert( 'ينبغي اختيار قالب آي بي مشترك لاستخدامه!' );
		return;
	}
	
	var value = shared[0];
	
	if( e.target.organization.value == '') {
		alert( 'ينبغي إضافة اسم مؤسسة لقالب{{' + value + '}}!' );
		return;
	}
	
	var params = {
		value: value,
		organization: e.target.organization.value,
		host: e.target.host.value,
		contact: e.target.contact.value
	};

	Status.init( e.target );
	
	var query = { 
		'title': wgPageName, 
		'action': 'submit'
	};
	Wikipedia.actionCompleted.redirect = wgPageName;
	Wikipedia.actionCompleted.notice = "تم وسم الآي بي المشترك، يتم إعادة تحميل صفحة النقاش";
	var wikipedia_wiki = new Wikipedia.wiki( 'يتم تعديل صفحة النقاش', query, friendlyshared.callbacks.main );
	wikipedia_wiki.params = params;
	wikipedia_wiki.get();
}
// </nowiki>